🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
8 messages
8 total messages Started by Krzyś59 Fri, 20 Mar 2015 12:28
Access97, kwerenda i formatowanie czasu
#136844
Author: Krzyś59
Date: Fri, 20 Mar 2015 12:28
10 lines
1895 bytes
Witam
Mam starutką bazę w Access97, potrzebuję dodać kwerendę zliczającą czas. 
SELECT Sum([Czas_zn]) AS Wyr1 FROM Zabiegi;
To działa, ale nie potrafię sformatować tak wyniku, żeby wyświetlał mi czas w formacie 12345:35 czyli 12345 godzin i 35 minut
Dostaję w wyniku liczbę, wiem, że to czas ale nie umiem go zmusić do takiego sformatowania.
Próbowałem różnych wersji gg:mm daje do 24 godzin, [g]:mm daje mi tylko jedną godzinę i minuty, wpisywanie większej ilości g też niewiele zmienia.
Próbowałem to też przez wpisanie wyrażenia Format, ale tu już całkiem poległem.
Może mi ktoś podpowiedzieć rozwiązanie problemu?
Pozdrawiam
Krzysiek
Re: Access97, kwerenda i formatowanie czasu
#136845
Author: MaciejF
Date: Sat, 21 Mar 2015 14:58
11 lines
1634 bytes
Można tak formatować. Musimy jednak ustalić czy liczba którą uzyskujesz jest zgodna z tym jak Access rozumie liczby w formacie Data/Czas.
Otóż Access uznaje że liczba 1 oznacza 1 dobę czyli 24 godziny.

Powinieneś zatem spróbować (pisane na szybko) poniższej formułki:

Fix([godz]*24) & ":" & Format(([godz]*24)-Fix([godz]*24);"00")

spróbuj i oceń.

MF
Re: Access97, kwerenda i formatowanie czasu
#136846
Author: MaciejF
Date: Sat, 21 Mar 2015 15:04
8 lines
1471 bytes
Poprawka

Prawidłowe potraktowanie godzin:

 Fix([godz]*24) & ":" & Format((([godz]*24)-Fix([godz]*24))*60;"00")


MF
Re: Access97, kwerenda i formatowanie czasu
#136847
Author: MaciejF
Date: Sat, 21 Mar 2015 15:29
27 lines
1963 bytes
W dniu sobota, 21 marca 2015 16:04:14 UTC+1 użytkownik MaciejF napisał:
> Poprawka
> 
> Prawidłowe potraktowanie godzin:
> 
>  Fix([godz]*24) & ":" & Format((([godz]*24)-Fix([godz]*24))*60;"00")
> 
> 
> MF

kiedyś był post na ten temat i była napisana podobna funkcji

http://pl.comp.bazy-danych.msaccess.narkive.com/oSxFXAOp/obliczanie-ilosci-godzin

cyt:
"Oto sprawdzona (czy aby do końca?) postać funkcji:

Function hhhnn(d as date) as string
hhhnn = Fix(CDec(d*24)) & Format(d, ":nn:ss")
End Function

gdzie d to dowolna różnica dwóch datoczasów."

/

Może pomoże
MF
Re: Access97, kwerenda i formatowanie czasu
#136848
Author: Krzyś59
Date: Wed, 25 Mar 2015 09:35
9 lines
2687 bytes
OK, dzięki, ale to piszesz to funkcje formatujące zmienną w VBA. Mnie nie o to chodzi.
Problem w tym, że nie mogę zmusić Accessa97 żeby w kwerendzie formatował wynik wyszukiwania w podglądzie Arkusz danych.
Zgodnie z helpem format który mnie interesuje powinien wyglądać tak [g]:mm
Tak zapisany format komórki w excellu daje mi prawidłowy wynik, ale access po takim wpisie przerabia mi to na /[g/]:nn i w efekcie otrzymuję coś takiego /8/:25 a powinno wyjść 38:25
Z przetworzeniem otrzymanego czasu za pomocą VBA nie mam problemu, to nie w tym trudność.
Mówiąc o funkcji Format mam na myśli Format zapisany w projekcie kwerendy, np:
Wyr1:Format([Data_zab];"mmmm rrrr") taki zapis daje mi w oknie Arkusz danych wynik w postaci Luty 2015 (oczywiście to przykłady)
Chciałem analogicznie to samo zrobić dla czasu, żeby otrzymać sformatowany wynik, ale wpis robiony podobnie do formatowania daty, nie działa.
np. Wyr2:Format([Czas_zn];"gg:mm") wywala błędy, niezależnie jak wpiszę format czasu. Moje pytanie dotyczyło jak ten problem rozwiązać. przepraszam, ze było trochę nieprecyzyjnie napisane i stąd lekkie zamieszanie.
Re: Access97, kwerenda i formatowanie czasu
#136849
Author: MaciejF
Date: Wed, 25 Mar 2015 13:30
14 lines
1718 bytes
Excel jest inną aplikacją niż Access chociaż to ten ten sam pakiet aplikacji, używanych jednak do innych celów.

1. Dodaj w module Accessa funkcję hhhnn.
2. Użyj jej w kwerendzie
SELECT hhhnn(Sum([Czas_zn])) AS Wyr1 FROM Zabiegi; 

Funkcja napisana dla ciebie:

Function hhhnn(d as date) as string 
hhhnn = Fix(CDec(d*24)) & Format(d, ":nn") 
End Function

MF
Re: Access97, kwerenda i formatowanie czasu
#136850
Author: MaciejF
Date: Wed, 25 Mar 2015 17:17
3 lines
1411 bytes
Po dodaniu funkcji do modułu będzie można też użyć jej zamiast
Funkcji Format
hhhnn([Czas_zn]) w widoku arkusz danych
Re: Access97, kwerenda i formatowanie czasu
#136851
Author: MaciejF
Date: Wed, 25 Mar 2015 17:26
1 lines
1322 bytes
Poza tym w funkcji Format powinno zadziałać [h]:nn
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads