Čas v access

"Rady nielen z Porady" - Tipy a triky, "how-to ...", nápady a riešenia k aplikáciam MS Office
pre všetky verzie až po MS Office 2010

Čas v access

Poslaťod smol66066 » 13.03.2014, 15:17

Prosím o radu alebo vysvetlenie.
Pri zadávaní času do tabuľky access s hodnotou väčšou ako 24 hodín mi hlási chybu o nezhode formátov. Ponúka možnosť previesť hodnoty na text, ale to by som nechcel. Je aj iná svižnosť? Ďakujem.
smol66066
 
Príspevky: 11
Registrovaný: 07.12.2011, 00:37
Udelené poďakovania: 3 krát
Prijaté poďakovania: 0 krát

Re: Čas v access

Poslaťod Palo-admin » 18.03.2014, 19:52

V Exceli je to jednuché, stačí použiť formát bunky: [h]:mm:ss.

V MS Access sa nedá zobraziť viac ako jeden deň v časovom formáte.
Hodnota môže byť uložená, ale bude sa zobrazovať ako počet dní pre celočíselné časti a času (zlomok dňa) v desatinnej časti.

Hodnoty väčšie ako 24 hodín pre zobrazenie musia byť vypočítané a vytvorené ako reťazec:

1| dátumové polia: Datum1, Datum2
2| Dni: [Datum2]-[Datum1]
3| Minuty: DateDiff("n";[Datum1];[Datum2])
4| Hodiny: [Minuty]*1/60
5| HH_MM: [Minuty]\60 & Format([Minuty] Mod 60;"\:00")

Viď prílohu.
TIP: dobrý link je tu: http://allenbrowne.com/casu-13.html

P.
Nemáte oprávnenie prezerať súbory priložené v tomto príspevku.
Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: Čas v access

Poslaťod smol66066 » 29.03.2014, 13:21

Vďaka za vysvetlenie a príklad. Problém je v tom, že treba zrátať dĺžku činnosti bez viazanosti na dátum. Keď som to mal ako text, nerátalo to správne, lebo rátalo do 100 a nie 60.
smol66066
 
Príspevky: 11
Registrovaný: 07.12.2011, 00:37
Udelené poďakovania: 3 krát
Prijaté poďakovania: 0 krát

Re: Čas v access

Poslaťod Palo-admin » 31.03.2014, 09:37

Z textovej formy to treba previesť na dátum cez fn CDate, napr: CDate("2014-03-01")

Alebo takouto funkciou (volaná takto: StrToDate("20140301")):
Kód: Vybrať všetko

Public Function StrToDate(Optional AnyDateString As String) As Date

    Dim Yr As String, Mt As String, Dt As String
   
    If Trim(AnyDateString) <> "" Then
   
       Yr = Left(AnyDateString, 4)
       Mt = Mid(AnyDateString, 5, 2)
       Dt = Mid(AnyDateString, 7, 2)
   
       StrToDate = CDate(Dt & "." & Mt & "." & Yr)
   
    End If

End Function

Palo-admin
Administrátor stránky
 
Príspevky: 473
Registrovaný: 18.07.2008, 16:43
Udelené poďakovania: 6 krát
Prijaté poďakovania: 63 krát

Re: Čas v access

Poslaťod sthruska » 18.06.2014, 12:40

Dopĺňam

Databázy poznajú len formát DateTime. Je to jediné číslo rozdelené na dátum a čas. Čo a ako sa zobrazuje, už nie je záležitosť DB.
Ak máš správne uložené hodnoty, tak Ti stačí odčítať jeden dátum od druhého. Nič viac.
sthruska
 
Príspevky: 3
Registrovaný: 18.06.2014, 12:01
Udelené poďakovania: 0 krát
Prijaté poďakovania: 0 krát


Späť na Word, Excel, PowerPoint, Outlook, Access

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 2 hostia

cron