Avatar billede comic123 Nybegynder
15. maj 2009 - 10:43 Der er 12 kommentarer og
1 løsning

Dato

Hej,jeg har et felt af typen kort datoformat, men når det gemmes i tabellen er det en forkert dato, hvad gør jeg forkert
Avatar billede tofferman Nybegynder
15. maj 2009 - 10:49 #1
Det er ikke nemt at sige. Hvordan gemmer du det?
Avatar billede mugs Novice
15. maj 2009 - 10:51 #2
Formatet er ligegyldigt, idet et format kun er den måde data aflæses på skærmen. Hvis du har den korrekte datatype (Dato / kolokkeslæt), vil den gemte værdi på HD ALTID være et decimaltal.

En fejl kan være dine regionale indstillinger for dato / tid i kontrolpanelet.
Avatar billede comic123 Nybegynder
15. maj 2009 - 11:03 #3
Hej mine indstillinger er korrekte hvis jeg f.eks. skriver 15-05-2009, så bliver denne dato til 10-07-1894.
Avatar billede tofferman Nybegynder
15. maj 2009 - 11:06 #4
Det er rigtigt mugs. Det er vigtigt at skelne mellem format og datatype. Format er den måde som data vises på, mens datatypen er den måde de lagres på.

Datatypen for dato og klokkeslæt er reelle tal (decimaltal). Et nul mener jeg svarer til den 30-12-1899 klokken 00.00. Og så tæller man ellers fremad herfra. Værdien 1 svarer til tidspunktet 31-12-1899 klokken 00.00. 1 time svarer således til værdien 1/24 eller 0,041666666667.

Jeg kender mange (incl. mig selv), som har rodet en del rundt i netop dette.

Når du skriver en dato i f.eks en forespørgsel, som skal gemme datoen i en tabel, er det en fordel at fortælle Access specifikt at det er dato/tid du er ved at gemme. Det gør du ved at sætte #-tegn uden om datoen/tidspunktet.

Den 15. maj 2009 klokken 11:07 kan f.eks. skrives således:

#05/15/2009 11:07#
Avatar billede tofferman Nybegynder
15. maj 2009 - 11:08 #5
15-5-2009 er et regnestykke som giver -1999,0.

i Access datosystem svarer det til datoen 10-07-1894.

Så jeg tror du har løsningen her :)
Avatar billede comic123 Nybegynder
15. maj 2009 - 11:16 #6
Hej
det kan godt være jeg ikke er med men nu skal jeg prøve helt at forklare hvad der sker:

1. jeg har en tabel hvor jeg har et felt der hedder fradato af datatypen: Dato og klokkeslæt

2. I min formular skal jeg indtaste en indmeldelses dato og det er en tekstboks, her kan jeg f.eks skrive dags dato helt fint, når recorden så gemmes er det at der i tabellen står noget helt andet og det kan jeg ikke forstå.
Avatar billede tofferman Nybegynder
15. maj 2009 - 11:20 #7
Det kan være at du kan løse problemet ved at lave en inputmaske i dit indtastningsfelt.

Hvis du ikke allerede har gjort det, så sæt tekstboksens format til at være det dato/tidsformat du anvender. Det kunne f.eks. være "Kort datoformat".

Hvis det ikke virker, så må vi grave lidt mere i det :)
Avatar billede comic123 Nybegynder
15. maj 2009 - 11:30 #8
Hej Alle
Det hjalp ikke, det er access 2007 jeg bruger, hvis det er til nogen hjælp.
Avatar billede tofferman Nybegynder
15. maj 2009 - 11:37 #9
Hvis formatet er rigtigt, og du bruger inputmaske, så forstår jeg ikke en meter.

Access 2007 behandler dato/tid ligesom de tidligere versioner.

Er din formular en ganske almindelig fortløbende formular, hvor du i princippet taster direkte i tabellen, eller er det sådan at du trykker "Ok", og derefter kører en forespørgsel for at gemme data?
Avatar billede comic123 Nybegynder
15. maj 2009 - 11:44 #10
når jeg forlader formularen kører jeg dette:

DoCmd.RunSQL "Insert Into medlemdata (Fradato)" & _
                  "VALUES " & [indmeldt] & ")"
Avatar billede tofferman Nybegynder
15. maj 2009 - 12:27 #11
Der mangler en startparentes. Men prøv:

DoCmd.RunSQL "Insert Into medlemdata (Fradato) VALUES( #" & [indmeldt] & "#)"

Ellers prøv

DoCmd.RunSQL "Insert Into medlemdata (Fradato) VALUES( #" & month([indmeldt]) &"/"& day([indmeldt]) &"/"& year([indmeldt]) &"#)"

Jeg kan ikke huske om det giver en fejl. Hvis det gør, så prøv:

DoCmd.RunSQL "Insert Into medlemdata (Fradato) VALUES( '#" & month([indmeldt]) &"/"& day([indmeldt]) &"/"& year([indmeldt]) &"#')"
Avatar billede comic123 Nybegynder
15. maj 2009 - 14:06 #12
Hej
Det vr denne der virkede:

DoCmd.RunSQL "Insert Into medlemdata (Fradato) VALUES( #" & month([indmeldt]) &"/"& day([indmeldt]) &"/"& year([indmeldt]) &"#)"

tak for hjælpen
Avatar billede tofferman Nybegynder
15. maj 2009 - 14:10 #13
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester