Avatar billede donslund Nybegynder
09. juni 2003 - 14:12 Der er 9 kommentarer og
2 løsninger

Access misforstår dato.

Når jeg sætter en dato ind i acces med:

"Insert into forum (moder, overskrift, tekst, forfatter, dato) values "
strSQL = strSQL & "('" & Request.Form("moder") & "', '" & Request.Form("overskrift") & "', '"
strSQL = strSQL & Request.Form("tekst") & "', '"
strSQL = strSQL & rs("fornavn") & " " & rs("efternavn") & "', '" & now() &"'); "

Så misforstår den, så den bytter om på dag og måned. Hvorfor gør den det?
Avatar billede terry Ekspert
09. juni 2003 - 14:13 #1
make sure your date is in format YYYY/MM/DD
Avatar billede terry Ekspert
09. juni 2003 - 14:18 #2
!
when you INSERT the date if you INSERT it YYYY/MM/DD then you can be sure it "understands" the correct MM and DD
If you for use NOW() then it will be taking the date format from the regional settings of the PC your on which will "maybe" be 09/06/2003 but on the PC where the dB is it THINKS your saying MM/DD/YYYY
Avatar billede terry Ekspert
09. juni 2003 - 14:19 #3
Try this
"Insert into forum (moder, overskrift, tekst, forfatter, dato) values "
strSQL = strSQL & "('" & Request.Form("moder") & "', '" & Request.Form("overskrift") & "', '"
strSQL = strSQL & Request.Form("tekst") & "', '"
strSQL = strSQL & rs("fornavn") & " " & rs("efternavn") & "', '" & format(now(), "yyyy/mm/dd") &"'); "

Not sure if you can in ASP but its a try!
Avatar billede donslund Nybegynder
09. juni 2003 - 16:35 #4
I Access står datoen som MM/DD/YYYY hh:mm:ss.
Hvorfor kan jeg så ikke hive det ud, så det står rigtigt?
Avatar billede terry Ekspert
09. juni 2003 - 19:03 #5
When you look at a date through Access it is the PC's regional settings which display the date  in that format. (MM/DD/YYYY hh:mm:ss) This is the US date format. If you change the regional settings to DK or England then it will be different.
09. juni 2003 - 23:05 #6
Datoer er noget rigtig L... at arbejde med fra VBA! Det har givet mange mennesker mange søvnløse nætter!!

Terry's forslag med at formattere til yyyy-mm-dd virker som oftest.
Men i de tilfælde hvor du bruger funktioner (Date(), Now(), Time m.m.) så lad dem indgå i selve SQL-strengen i stedet for at oversætte funktionen til en reel dato. Dvs brug funktionen således:
Du er her : Eksperten : Databaser : Access : Access misforstår dato. :


Access misforstår dato.    30 point fra donslund
Når jeg sætter en dato ind i acces med:

"Insert into forum (moder, overskrift, tekst, forfatter, dato) values "
strSQL = strSQL & "('" & Request.Form("moder") & "', '" & Request.Form("overskrift") & "', '"
strSQL = strSQL & Request.Form("tekst") & "', '"
strSQL = strSQL & rs("fornavn") & " " & rs("efternavn") & "', Now()); "

(jeg har ikke lige checket om jeg har fået det rigtige antal parenteser og anførselstegn med!)

Men på denne måde overlader du det til Access selv at fortolke funktionen samtidig med at du slipper for at tage stilling til om der skal # eller ' omkring datoen.

/Thomas
09. juni 2003 - 23:17 #7
Okay, hvad gik der lige galt med mit indlæg???? Der kom vist en masse tekster med, som ikke skulle være der.
Prøver igen:
Datoer er noget rigtig L... at arbejde med fra VBA! Det har givet mange mennesker mange søvnløse nætter!!

Terry's forslag med at formattere til yyyy-mm-dd virker som oftest.
Men i de tilfælde hvor du bruger funktioner (Date(), Now(), Time m.m.) så lad dem indgå i selve SQL-strengen i stedet for at oversætte funktionen til en reel dato. Dvs brug funktionen således:

"Insert into forum (moder, overskrift, tekst, forfatter, dato) values "
strSQL = strSQL & "('" & Request.Form("moder") & "', '" & Request.Form("overskrift") & "', '"
strSQL = strSQL & Request.Form("tekst") & "', '"
strSQL = strSQL & rs("fornavn") & " " & rs("efternavn") & "', Now()); "

(jeg har ikke lige checket om jeg har fået det rigtige antal parenteser og anførselstegn med!)

Men på denne måde overlader du det til Access selv at fortolke funktionen samtidig med at du slipper for at tage stilling til om der skal # eller ' omkring datoen.

/Thomas
Avatar billede terry Ekspert
10. juni 2003 - 17:48 #8
donslund>It would help if you commented :o)
Avatar billede donslund Nybegynder
10. juni 2003 - 23:14 #9
Undskyld, men jeg har ikke lige haft tid til at teste. Skal nok reagere når jeg får prøvet, men det bliver ikke lige nu. Jeg skal nemlig i seng.
Men jeg sætter stor pris på jeres venlige hjælpsomhed.
Avatar billede donslund Nybegynder
10. juni 2003 - 23:27 #10
Kunne ikke lade være med at teste alligevel og thomas' kode var lige til at indsætte. Terry's kommentarer har jeg lært en del af, så har I noget imod at dele pointene?
Det håber jeg ikke I har.
11. juni 2003 - 08:38 #11
Sæ'føli' ikk' :o)
thnx!
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