Avatar billede skildpadden Nybegynder
07. januar 2008 - 12:19 Der er 12 kommentarer og
1 løsning

Datoproblemer med Access

Jeg anvender nedenstående kode:

strSQL = "DELETE FROM kalender WHERE s_startdato < #" & date() & "# and s_slutdato < #" & date() & "#"


Som jeg vil mene, skulle fjerne alle records i s_startdato som ligger før date(), og s_slutdato som ligger før date().

Hvis jeg laver en record med datoer 12-12-2008, virker det fint. Hvis jeg derimod laver en 02-02-2008, så sletter den også denne.

Er der nogen som kan hjælpe mig her?
Avatar billede softspot Forsker
07. januar 2008 - 13:28 #1
Er du mon på jagt efter denne udgave i stedet:

strSQL = "DELETE FROM kalender WHERE date() BETWEEN s_startdato AND s_slutdato"

...og nej, det er ikke en fejl at jeg har undladt "& date() &", da Access har en indbygget funktion til at finde datoen, hvilket er mere sikkert end at hente den fra scriptsprogets funktionsbibliotek.
Avatar billede softspot Forsker
07. januar 2008 - 13:32 #2
Hov! Den skulle vel ikke slette nogle af de 2 eksempler du kommer med da de begger ligger i fremtiden?

Hvad er det helt præcist du gerne vil have sker?
Avatar billede skildpadden Nybegynder
07. januar 2008 - 14:05 #3
Jeg vil gerne, at den sletter de records hvor både s_startdato og s_slutdato ligger efter dags dato.
Avatar billede softspot Forsker
07. januar 2008 - 14:08 #4
OK, så ville jeg gøre sådan:

strSQL = "DELETE FROM kalender WHERE date() < s_startdato AND date() < s_slutdato"

under antagelse af at "efter" betyder i fremtiden... :)
Avatar billede softspot Forsker
07. januar 2008 - 14:09 #5
Men spørgsmålet er om din egen så ikke hele tiden har fungeret, da d. 2. februar 2008 jo stadig er i fremtiden (ligesom d. 12. december i år er det).
Avatar billede skildpadden Nybegynder
07. januar 2008 - 14:18 #6
Det er mig der vrøvler... undskyld!

Det skal selvfølgelig være de records som FØR dags dato.
Avatar billede softspot Forsker
07. januar 2008 - 14:24 #7
OK, men det er så blot et spørgsmål om at vende operatoren:

strSQL = "DELETE FROM kalender WHERE date() > s_startdato AND date() > s_slutdato"
Avatar billede skildpadden Nybegynder
07. januar 2008 - 14:36 #8
Har jeg prøvet... nu sletter den 12-12-2008 igen.
Avatar billede skildpadden Nybegynder
07. januar 2008 - 14:37 #9
Bruger denne:

strSQL = "DELETE FROM kalender WHERE #" & date() & "# > s_startdato and #" & date() & "# > s_slutdato"
Avatar billede softspot Forsker
07. januar 2008 - 14:40 #10
Prøv at bruge min version...
Avatar billede skildpadden Nybegynder
07. januar 2008 - 14:43 #11
Den fungerer...

Super!

Laver du et svar?
Avatar billede softspot Forsker
07. januar 2008 - 14:50 #12
Velbekomme :)
Avatar billede softspot Forsker
07. januar 2008 - 15:00 #13
Tak for point :)
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
Kurser inden for grundlæggende programmering

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