Avatar billede clatuna Nybegynder
15. marts 2006 - 15:42 Der er 21 kommentarer og
1 løsning

access bytter om på datoerne

Mine brugere vælger dato og klokkeslet som jeg lægger i access-databasen i formatet "dd-mm-yyyy 00:00:00". Når data først ligger i databasen bytter access om på "dd" og "mm", men kun når "dd" er mindre end 13. Dvs.: "12-04-2006" bliver til "04-12-2006" mens "13-04-2006" lægger sig i basen som, ja, "13-04-2006". Datatypen er datetime, jeg bruger ## om datoen, når jeg inserter. Access-programmet er dansk. Det har ikke noget at gøre med indstillinger i brugerens kontrolpanel. Jeg har rodet lidt rundt med "format property" eller hvad det nu hedder i Access. At Access tilsyneladende er helt egenrådig kommer lidt bag på mig. WHAT-TO-DO?
Avatar billede terry Ekspert
15. marts 2006 - 15:56 #1
Access ALWAYS stores the date in the same format. The PC's regional settings are used to decide how the dates are displayed.
Avatar billede clatuna Nybegynder
15. marts 2006 - 17:48 #2
Yes, Terry, but access stores the data this way before its displayed
Avatar billede suppenudel Nybegynder
15. marts 2006 - 17:50 #3
Som Arne_v ville have sagt: "Brug parameters" :-)
Avatar billede suppenudel Nybegynder
15. marts 2006 - 17:51 #4
men okay, det har måske intet med web at gøre?
Avatar billede clatuna Nybegynder
15. marts 2006 - 17:58 #5
øh, Suppenudel, kan det uddybes?
Avatar billede suppenudel Nybegynder
15. marts 2006 - 18:22 #6
Nu ved jeg ikke om du bruger et scriptsprog, men hvis du add'er parameters til dine datoer vil det blive gemt korrekt i databasen. Der er et spørgsmål her omhandlende emnet:

http://www.eksperten.dk/spm/556845

Men ellers, hvis ikke, så prøv at søge her på eksperten på "dato problem engelsk", eller lignende, den har været oppe og vende mange gange før.

Mvh :-)
Avatar billede clatuna Nybegynder
15. marts 2006 - 18:30 #7
Det ser rigtig lovende ud, suppenudel, jeg afprøver det i aften og vender tilbage.
Avatar billede suppenudel Nybegynder
15. marts 2006 - 18:39 #8
ok, det var godt, men bruger du scriptsprog eller er det ren Access? :-)
Avatar billede terry Ekspert
15. marts 2006 - 19:07 #9
if you insert the date in this format
yyyy-mm-dd
than you can be sure that the data is reaching the database correctly.

I know almost nothing about web programming but I am sure that I have seen something wher it is neceesary to inlcud e aline of code which indicates the date format. So if you dont include that then it might very well be getting changed. But it is NOT Access wich is storing the date incorrectly, its the program which is writing the data to Access.
Avatar billede clatuna Nybegynder
15. marts 2006 - 19:32 #10
Suppenudel, jeg laver websites i asp-rammen og skriver i ODO, vbscript og sql. And terry, I use an ordinary sql-insert statement. Jeg skal lige afprøve det suppenudel foreslår, så snart jeg har puttet mine børn. Jeg vender tilbage.
Avatar billede terry Ekspert
15. marts 2006 - 19:41 #11
INSERT INTO yourTable .... #10-03-2006# .....

is this 10th march or 3rd october?

SQL by default accepts the US date format which would be 3rd october.

But if you use #2006-03-10# it can only be one thing
Avatar billede claesdamlund Nybegynder
15. marts 2006 - 19:49 #12
Når du i kode pakker datoer ind i ## vil Access umiddelbart forsøge at tolke datoen efter amerikansk format (mm-dd-yyyy). Kun hvis det ikke kan lade sig gøre forsøger den at tolke efter europæisk format -  netop når de første ciffre er 13 eller derover. Det gælder også i en dansk Access. Prøv i stedet at pakke datoen ind i "".
Avatar billede suppenudel Nybegynder
15. marts 2006 - 19:58 #13
Jeg har prøvet alt det med at formatere datoen til dd-mm-yyyy direkte i SQL'en, men det har aldrig hjulpet. Så snart vi kommer til, som claesdamlund beskriver, starten af måneden, tror den at det første tal er måneden. Kun parameters i scriptet har fået det til at virke korrekt.
Avatar billede claesdamlund Nybegynder
15. marts 2006 - 20:07 #14
Husk at datoer (og klokkeslet) altid er gemt som heltalsserier i alle databaser - også Access. Derfor kan du måske bruge CLng-funktionen til at konvertere din dato til et heltal inden du smider den i databasen. Det bør ikke kunne fejle. Ellers må du give et mere konkret eksempel på hvad det er du gør, som fejler.
Avatar billede terry Ekspert
15. marts 2006 - 20:33 #15
But if you use #2006-03-10# it can only be one thing
Avatar billede suppenudel Nybegynder
15. marts 2006 - 20:42 #16
Not if you use it in SQL in a script language on the web. It will vary from user to user, which machine it is run from and where it is located.
Avatar billede clatuna Nybegynder
15. marts 2006 - 21:08 #17
Hej alle. Her er min insert:
sql="insert into KalenderTabel values(" & antal & ",'" & request.form("overskrift") & "','" & kropstekst & "',#" & session("OpdateDate") &  " " & request.form("tidspunkt") & "#,#" & now &  "#," & session.contents("BrugerId") & ")"

Af forskellige årsager skal formatet som sagt være "dd-mm-yyyy" i display. Jeg har prøvet med clng-funktionen og "" i stedet for ## (hvilket ville give andre problemer, selvom det havde virket). Det lader til I er (lidt) enige om at løsningen ligger i at konvertere datoen end den smides i basen. "session("OpdateDate")" indeholder en dato i formatet "dd-mm-yyyy" og både den dato og datoen i now byttes om idet datoen lægges i basen.
Avatar billede clatuna Nybegynder
15. marts 2006 - 21:37 #18
Hej igen
Det virker alligevel med "" i stedet for ## sådan som claesdamlund foreslår. Alt fungerer tilsyneladende som det skal nu. Så pointsne går til damlund. Nu skal jeg bare lige finde ud af hvordan jeg giver dem til ham. Det synes ikke at fremgå helt klart
Avatar billede clatuna Nybegynder
15. marts 2006 - 22:30 #19
claesdamlund, kan du ikke lægge et svar ind, så jeg kan give dig point?
Avatar billede claesdamlund Nybegynder
15. marts 2006 - 22:51 #20
Godt det virker!
Avatar billede suppenudel Nybegynder
15. marts 2006 - 23:57 #21
Fint det virker - men det kan snyde fordi vi i dag har d. 15-03-06, hvilket er overskredet de 12 måneder, så datoen automatisk følger 03 som måneden, men vent og se når april starter, om den så begyneder at indskrive 4. Januar 2006. - Det har det i hvert fald gjort for mig da jeg bøvlede med det. Men nej, hvis du kan kigge direkte i din Access og den indskrevne dato står rigtigt så må det jo virke :-)
Avatar billede clatuna Nybegynder
16. marts 2006 - 10:32 #22
Ja, til min egen overraskelse lægger datoen sig i basen i det format som den indtastes. Jeg var ellers overbevist om at man skulle bruge ## til datatypen datetime. Men sådan er det tilsyneladende ikke. Og jeg bevarer muligheden for datakronologi ved brug af "order by [datokolonne] desc", f.eks.
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