Avatar billede Kim Neesgaard Seniormester
22. oktober 2001 - 19:18 Der er 6 kommentarer og
2 løsninger

Dato som variabel i en SQL

Jeg overfører en dato til en funktion med

Function F(Dato As Date)

Dato stammer fra et felt på en form, der er tildelt Date().

Herefter vil jeg bruge UPDATE ifm. en

DoCmd.RunSQL (tmpSQL)

Jeg har kigget i andre svar om samme emne og det virker som om tmpSQL skal se således ud:

tmpSQL = \"UPDATE Tabel SET Tabel.Felt = \'EKSEMPEL\' \" WHERE Feltdato=#\" & Dato & \"#\"

Der opdateres blot intet. Tabellens dato er en short date (fx. 20-10-01).

Hvad gør jeg mon forkert?
22. oktober 2001 - 19:38 #1
Du er sikker på at der ikke også er angivet et klokkeslet i feltdato i tabellen? I så fald vil den jo ikke være præcis #20-10-01#

Det burde virke som du beskriver.

/Thomas
Avatar billede nih Novice
22. oktober 2001 - 21:00 #2
prøv at skive

debug.print tmpSQL

for at se hvordan SQL strengen ser ud - evt kan den kopieres direket fra vinduet fejlfinding til en ny forespørgsel - herved er det \'nemt\'/skulle være muligt at se hvad der er galt.

prøv evt med: & format$(dato,\"mm-dd-yy\") &

Niels
Avatar billede Kim Neesgaard Seniormester
23. oktober 2001 - 19:04 #3
Hvis jeg erstatter Dato med \'20-10-01\', så virker det fortsat ikke. Erstatter jeg den derimod med \'20-10-2001\', så virker det. Formattering med format$(Dato,\"dd-mm-yyyy\") virker også!!
Avatar billede Kim Neesgaard Seniormester
23. oktober 2001 - 22:03 #4
Formatteringen virker også når man i kontrolpanelet sætter datoformatet omvendt!
Avatar billede nih Novice
23. oktober 2001 - 22:33 #5
Hvad med mm-dd-yy
Jeg er næsten sikker på at det SQL\'s standartformat - Jeg har en fornemmelse af at du vil få fejl ved datoer <= 12

3.okt 03-10-2001 vil sql\'en læse som 10.marts

Niels
Avatar billede Kim Neesgaard Seniormester
23. oktober 2001 - 23:12 #6
Det har du helt ret i!! Det er ikke det firecifrede årstal, der betyder noget, men rækkefølgen, så format$(dato,\"mm-dd-yy\") er den, der virker i alle tilfælde.
Avatar billede nih Novice
24. oktober 2001 - 08:43 #7
Prøv for sjov at oprette en ny forespørgsel, der indeholder et datofelt!
Hvis man sætter kriteriet i forespørgselsgitteret til #3-10-2001#, og skifter til SQL-visning har Access selv byttet om på dag/mnd -> #10-3-01#

Niels
Avatar billede sln Nybegynder
24. oktober 2001 - 22:06 #8
Jeg har lige fået løst et lignende problem. Løsningen er at anvende CDate()
Såvidt jeg kan se skal du prøve med:
WHERE Feltdato = Cdate(Dato)

Kig på denne link, det betaler sig.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconspecialcondsiderationswhenwritinginternationalcode.asp

Søren.
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