Avatar billede daniel_d Nybegynder
28. september 2002 - 03:08 Der er 7 kommentarer og
1 løsning

sql sætning: større end eller lig med dato ???

Endnu en gang i problemer :o)
Bare det ikke bliver en vane!

Jeg vil begrænse mit udtræk fra databasen til kun at gælde rækker indenfor en given dato (startdate og enddate)

forsøgsvis har jeg angivet datoen den skal gå ud fra til at være 28-09-2002 og min sql sætning kommer så til at se sådan her ud:

            strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate >= 28-09-2002 &" and enddate <= 28-09-2002

startdate og enddate er angivet til at være "dato og klokkeslet" i db'en

Men det dur bare ikke. Jeg får fejl:

Microsoft VBScript runtime error '800a000d'
Type mismatch

Hvad gør jeg galt ?

Mvh
Daniel Duvald
Avatar billede daniel_d Nybegynder
28. september 2002 - 03:12 #1
havde vist vendt < og > forkert, men fejlen er stadig den samme
Avatar billede daniel_d Nybegynder
28. september 2002 - 03:24 #2
Det her er mere korrekt, men stadig lidt problemer. Nu får jeg ikke grove fejl, men den viser så ingenting fra db'en som den burde gøre med denne dato.

            strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate <= "& 27-09-2002 &" and enddate <= "& 28-09-2002
Avatar billede excession Nybegynder
28. september 2002 - 04:20 #3
hvis du vil hente alt fra tabellen indenfor en periode ville jeg gøre det sådan her:

I dette eksempel ville du hente alt mellem dagsdato og 14 dage frem

strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate >= Date() and enddate <= DateAdd('d',14,Date())
Avatar billede excession Nybegynder
28. september 2002 - 04:27 #4
ellers så laver den fejl, fordi dine datoer ikke opfattes som datoer.  de bliver betragtet som regnestykker...

det skal se sådan ud:

strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate >= CDate("28-09-2002") and enddate <= CDate("28-09-2002")

i dit andet eksempel bliver de stadig betragtet som regnestykker...
Du skal bruge de forskellige typer i Access sådan her:

tal = 1
tekst = "Hej"
dato = CDate("25-07-1977")

strSQL = "SELECT * FROM '" & tekst & "' WHERE category"
strSQL = "SELECT * FROM " & tal & " WHERE category"
strSQL = "SELECT * FROM #" & dato & "# WHERE category"

-- xs
Avatar billede daniel_d Nybegynder
28. september 2002 - 04:30 #5
jeg vil da mene at startdate <= date() idet at min side kan være publiseret for 14dage siden eller et halvt år siden. Derfor er startdatoen mindre eller lavere end date()

Tilsvarende skal date() <= enddate da date() ikke må overskride enddate
Det virker bare ikke helt
Avatar billede excession Nybegynder
28. september 2002 - 04:35 #6
så kunne du lave det sådan her:

strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate <= Date() and enddate >= DateAdd('d',-14,Date())
Avatar billede daniel_d Nybegynder
28. september 2002 - 04:39 #7
Jeg kan bare ikke få det til at virke rigtigt. Jeg har prøvet kun med startdate:

strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and startdate <= "& Date()

teoretisk skulle den så kun liste de menuer som havde en startdate der var mindre end dagsdato
Avatar billede daniel_d Nybegynder
28. september 2002 - 05:02 #8
ok - jeg har løst problemet med between:

strSQL = "SELECT * FROM articles WHERE category=" & objRs("id") & " and releasetoweb=" & 1 & " and date() BETWEEN startdate and enddate"

Men jeg takker alligevel for hjælpen så sent på natten.. Så point til dig alligevel!
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