Avatar billede tigerdyr2007 Praktikant
08. februar 2010 - 22:11 Der er 7 kommentarer og
1 løsning

SQL og datoer i Access

Hej eksperter

Er der stadig ikke nogen løsning på dato problematikken omkring ombytning på måned/dag meget i tråd med http://www.eksperten.dk/spm/823059

men problemet forbliver jo altid aktivt :-( Lige opdaget der er en del af en større app. som skal rettes igennem igen. Troede ellers det fungerede, men så kom den over på en maskine med dansk Access 2007 (min egen er engelsk Access 2007) alle andre sprogsettings er identiske, og straks fik jeg en masse fejl.
Avatar billede fdata Forsker
08. februar 2010 - 23:17 #1
Var den ikke på plads?
Dine datoer/klokkeslæt var jo en 14 cifret streng, som blev klippet i relevante stykker. Det ændrer sig vel ikke fordi sproget ændrer sig - eller?
Forklar lige, hvad det er for noget med "ombytning".
Avatar billede tigerdyr2007 Praktikant
09. februar 2010 - 09:09 #2
Datoen 8. feb. 2010 bliver til 02-08-2010. Jeg har ikke før brugt klippe løsningen, da det ellers altid har fungeret hos mig så længe jeg har brugt =format(now(), "\#dd\/mm\/yyyy\#") i mine "INSERT INTO", i den samme insert into kan jeg med ovenstående få den ene dato korrekt, og den anden forkert...
(alt omkring de to felter er identisk (undtaget feltnavnet), og bliver sat til hhv. opdateringsdato, og oprettelsesdato, hvor de to er det samme ved nyoprettelser).
Avatar billede fdata Forsker
09. februar 2010 - 11:01 #3
Øh, vi bevæger os vist ud af 2 spor.
Det forrige spørgsmål drejede sig om datoer udtrykt som et 14-cifret tal.
Nu henviser du til Now(), som er en indbygget datofunktion.

OK. Hvis vi holder fast i Now(), vil du tilsyneladende indsætte en formateret streng i to felter.
Hvilken felttype er de to felter oprettet med?
Er det en ren Access løsning, eller er der noget SQL server indblandet?
Avatar billede tigerdyr2007 Praktikant
09. februar 2010 - 11:15 #4
Jeg snakker ikke om dato på 14 cifre, men jeg kan godt se mit link ikke er det bedste, det er blot fra min surfen rundt på eksperten, og jeg skulle nok have taget http://www.eksperten.dk/spm/5182 eller http://www.eksperten.dk/spm/550633 i stedet for.

Men min kommentar #2 er vel nok i virkeligheden den mest dækkende, ville bare gerne have en løsning som fungerede uden under alle settings, versioner etc, og det altid blev lagret i dd-mm-yyyy...

Beklager forvirringen
Avatar billede hugopedersen Nybegynder
09. februar 2010 - 12:00 #5
JET format "mm-dd-yyyy"
MS SQL format = "yyyy/mm/dd"

Jeg plejer at lave det som en constant og så formatere Format(Now, conSQL_Format) når jeg sætter ind fra kode.
Det har altid virket for mig.

At det så er p.... træls at det er forskelligt fra JET til MS SQL er en anden sag.
Avatar billede fdata Forsker
09. februar 2010 - 17:11 #6
OK. Du kunne jo overveje at indføre en generel lille rutine (som du kan lægge i et vilkårligt modul) i stil med:

Function DatoSQLformat(D As Date) As String
  DatoSQLformat = "#" & Year(D) & "/" & Month(D) & "/" & Day(D) & "#"
End Function

Den burde spille under alle sprog.
Så kan du bruge noget lignende:
"INSERT INTO Tabel(Dato) SELECT DatoSQLformat(Now()) ...
Avatar billede tigerdyr2007 Praktikant
13. februar 2010 - 17:28 #7
Det ser ud til Hugopedersens metode virker, så hvis du vil have point?

Det er det samme du siger fdata, bare lidt anderledes, og Hugepedersen var først, tror i får lov at dele :-)
Avatar billede tigerdyr2007 Praktikant
11. marts 2010 - 20:41 #8
Ville gerne give hugopedersen point, men men, han har ikke svaret, så medmindre han insisterer tager jeg dem hjem igen.
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