20. juli 2006 - 18:40Der er
24 kommentarer og 1 løsning
Dato byttes om
I en accesdatabase har jeg to datofelter. Når jeg eksempelvis taster 12-08-2006 ind, bliver det lavet om til 08-12-2006 Hvordan forhindrer jeg dette? P.S. Der er session.lcid=1030 på siden også
Access forventer at få datoer serveret på formen mm-dd-yyyy. LCID har ingen indflydelse på dette: Den influere kun hvordan ASP koden opføre sig, og har ingen indflydelse på Access selv.
Det er da lige præcis det som er tilfældet (og det har iøvrigt intet at gøre med at både dag og måned er lovlige).
Når du skriver 12-08-2006 læser du det som 12 august 2006. Det gør du fordi at du er dansk og er vant til at i Danmark betyder 12-08: "den 12. dag i den 8. måned".
Imidlertid er Access udviklet af et kendt amerikansk firma, og det læser derfor tingene i følge amerikansk datoformat. I USA læses 12-08 imidlertid som: "den 8. dag i den 12. måned".
Jeg har fundet at fejlen var min udregning af antal uger mellem fradato og tildato .. pga omvendingen af dato gave den et meget langt negativ tal - og det ville min database ikke være med til. Men lige en mere... hvis f.eks skriver fra: 01-08-2006 til: 07-08-2006 beholder den datoen som den er skrevet .. hvorfor bytter den ikke om her?
Er du sikker på at det ikke er nogen af dine kodeændringer som er skyld i at det nu virker anderledes? Umiddelbart er der i hvert fald ingen grund til at Access skulle begynde at opføre sig anderledes.
Hvis du ikke har fået løst dit problem, så synes jeg da bare at vi skulle fortsætte i morgen. Hvis det da er i orden med dig? Jeg tager normalt ikke point for at være stædig, kun for at hjælpe med en løsning. :^)
Nu har jeg forsøgt snart alt med samme resultat :/
Eksempler: 04-11-2006 bliver til 11-04-2006 i DBen 11-04-2006 bliver til 11-04-2006 i DBen
StartDay = 04 StartMonth = 11 StartYear = 2006 StartDay&"-"&StartMonth&"-"&StartYear bliver til 04-11-2006 i SQL, men 11-04-2006 i DB StartMonth&"-"&StartDay&"-"&StartYear bliver til 11-04-2006 i SQL, men 11-04-2006 i DB
Kan man slet ikke arbejde uden om dette?
Jeg ville gerne lave DBen om til tekst-felter alene pga dette, men det er en meget omfattende side, med en masse sider, der såørger på disse datoer, så det er ret omstændigt at begynde at pille i det :/
Ok, jeg tror at jeg forstår hvad det er som forvirre dig:
Databasen vil have tingene ind på engelsk, men den viser tingene på dansk!!! Forvirrende ikke?!
Well, årsagen kan bl.a. være at du har sat din side op med session.lcid=1030. Dette vil nemlig betyde at ASP viser datoerne på dansk format, men dette ændre ikke ved at Access forventer at få dem ind på engelsk format. Man kan sige at ASP ligger som et lag mellem dig og databasen og oversætter fra engelsk til dansk når datoerne skal vises.
Aaarh - verdamt.... jeg tror sgu egentlig at DBen har været ok, men visningen giver problemer.. eller også har jeg fået rettet noget rigtigt. Jeg fik lige en mistanke om at jeg lige skulle kigge i DBen igen is stedet for min side, der viser alt - DBen viste 11-04-2006 (som ønsket) Dvs nu er det "bare" sitet, der skal rettes .. lægger du et svar?
Lige et sidespørgsmål.. Når nu jeg har 11-04-2006 (4. november stående), hvordan kan jeg så også have 17-11-2006 stående (17. november), hvis access altid definerer måned først?
Hvis du skriver session.lcid=1030 så burde ASP vise datoerne på dansk format helt af sig selv.
Men ellers er der jo altud Day(), Month() og Yeay() funktionerne - med dem kan du udtrække de enkelte dele af en dato, og så kan du jo skrive den lige på den form du ønsker.
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.