Avatar billede lightbrain Nybegynder
27. oktober 2002 - 14:22 Der er 8 kommentarer og
3 løsninger

Udskriv bestemte datoer, sorteret

Hej

Jeg har et script, som danner en sorteret liste af datoer fra dags dato og 60 dage frem (uden dato-gentagelser). Men desværre bliver der intet udskrevet, fordi der ikke bliver fundet nogle datoer, og det er til trods for, at der ligger masser af datoer i databasen, som den skulle have udskrevet.

_________________________________________

<%
    Set myConn=Server.CreateObject("ADODB.Connection")
    myConn.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="+server.Mappath("/db/selvet.mdb"))
    strSQL = "Select distinct datopublish from search where (datopublish between " & date() & " and " & date() + 60 & ") order by datopublish"
    'strSQL = "Select * from search where (datopublish >= " & Date() & ") order by datopublish"
    set rs = myConn.execute(strSQL)
   
    do while not rs.EOF
        if isDate(rs("datopublish")) then
            myDates = myDates & rs("datopublish") & ","
        End If
    rs.MoveNext
    Loop
    myDates = left(myDates,len(myDates)-1)
    response.write "*** " & myDates
    response.write strSQL
%>

Den udskrevne myDates er tom!

Den udskrevne strSQL er:
Select datopublish from search where (datopublish between 27-10-2002 and 26-12-2002) order by datopublish
Avatar billede neteffect Nybegynder
27. oktober 2002 - 14:33 #1
Se http://www.eksperten.dk/spm/246418

Din query skal ende med at se således ud:
Select datopublish from search where (datopublish between #10-27-2002# and #12-26-2002#) order by datopublish
Avatar billede thomas_regin Nybegynder
27. oktober 2002 - 16:34 #2
Nåårh ja.. Det er sgu' da også rigtigt!

Sorry, Lightbrain at jeg ikke selv tænkte på det i dit oprindelige spørgsmål.. Når man er vant til at arbejde med SQL-server, så glemmer man jo altid de dér havelåger til Access!..

Din SQL-streng skal derfor se således ud:

strSQL = "Select distinct datopublish from search where (datopublish between '#" & date() & "#' and '#" & date() + 60 & "#') order by datopublish"

Thomas.
Avatar billede lightbrain Nybegynder
27. oktober 2002 - 16:36 #3
>thomas_regin
Smid lige et svar så du kan få nogle po'ingser ;)
Avatar billede thomas_regin Nybegynder
27. oktober 2002 - 17:44 #4
Nej da!.. Dem skal neteffect da ha'! Det var jo ham, som kom med løsningen! :)

Thomas.
Avatar billede lightbrain Nybegynder
27. oktober 2002 - 17:46 #5
Ok, men du skrev det - jeg kunne ikke selv have regnet det ud.
Avatar billede thomas_regin Nybegynder
27. oktober 2002 - 17:55 #6
Jaja.. Lad os nu se, om det virker før vi taler om points! :)

Thomas.
Avatar billede lightbrain Nybegynder
27. oktober 2002 - 18:08 #7
Ja, det er du .... ret i, for den fortsætter med at sige:
Data type mismatch in criteria expression.

(Jeg troede ellers at det var LØSNINGEN ;)
Avatar billede thomas_regin Nybegynder
27. oktober 2002 - 18:13 #8
Så prøv at fjerne "pingerne", så den istedet hedder:

strSQL = "Select distinct datopublish from search where (datopublish between #" & date() & "# and #" & date() + 60 & "#) order by datopublish"
Avatar billede lightbrain Nybegynder
27. oktober 2002 - 18:21 #9
Nu virker det, og det er jo fantastisk... tryk svar hvis du også vil have en del af pointkagen :-)

Tak for hjælpen og tak for din tålmodighed med mine uendelige ændringer til SQL-sætningen (i andet indlæg).
Avatar billede thomas_regin Nybegynder
27. oktober 2002 - 18:25 #10
Ha ha.. Ja, det var noget af en gyser, men stadig ganske fornøjeligt! :)

Du kan jo selv bestemme om du vil give mig points!

Pøj pøj med dit projekt!

Thomas.
Avatar billede lightbrain Nybegynder
27. oktober 2002 - 19:25 #11
Hermed gjort :-)
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