20. april 2005 - 17:40Der er
27 kommentarer og 1 løsning
hent datoer fra uge
hej!
Jeg grave ned i min database og finde datoer for den uge vi er. Dvs. nu er vi i uge 16, det skal jeg fortælle databasen. Så skal jeg have den til at udskrive de poster der er oprettet i denne uge. Dvs. posten fra man, tirs, ons, tors og fre,.. og er der en post der ikke findes, skal den så bare være blank
if Weekday(Date) < 6 then mandag = DateAdd("d",Date,-(Weekday(Date)-1)) fredag = DateAdd("d",Date,5-Weekday(Date)) elseif Weekday(Date) = 6 then mandag = DateAdd("d",Date,-5) fredag = DateAdd("d",Date,-1) elseif Weekday(Date) = 7 then mandag = DateAdd("d",Date,-6) fredag = DateAdd("d",Date,-2) end if sql = "select * from tabel where dato between mandag and fredag"
hov den virker vist uanset hvad ---- mandag = DateAdd("d",Date,-(Weekday(Date)-1)) fredag = DateAdd("d",Date,5-Weekday(Date)) sql = "select * from tabel where dato between mandag and fredag" ----
hmm og så er det lige at man husker at ugedage starter søndag og slutter lørdag Så det den giver dig er søndag til torsdag Men det må kunne løses ved at lægge en til resultatet mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1) fredag = DateAdd("d",Date,(5-Weekday(Date))+1) sql = "select * from tabel where dato between mandag and fredag"
Set rsOFR = Conn.Execute("SELECT * from OFR where dato between mandag and fredag") Do until rsOfr.eof response.write rsOFR("dato") & "<br>" rsOfr.movenext loop
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 2. /intranet/ofr.asp, line 33
Linie 33 er: Set rsOFR = Conn.Execute("SELECT * from OFR where dato between mandag and fredag")
prøv følgende blot for at se om det er de rigtige datoer: --- mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1) fredag = DateAdd("d",Date,(5-Weekday(Date))+1) sql = "SELECT * FROM OFR WHERE dato BETWEEN "&mandag&" AND "&fredag response.write sql Set rsOFR = Conn.Execute(sql)
godt så datoerne er rigtige prøv sætte # omkring sql = "SELECT * FROM OFR WHERE dato BETWEEN #"&mandag&"# AND #"&fredag&"#" og hvis det ikke dur så prøv sql = "SELECT * FROM OFR WHERE dato >= #"&mandag&"# AND dato <= #"&fredag&"#"
Jeg vil så udskrive dagen, men den er en dag foran..
mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1) fredag = DateAdd("d",Date,(5-Weekday(Date))+1) sql = "SELECT * FROM OFR WHERE dato BETWEEN #"&mandag&"# AND #"&fredag&"#"
response.write sql Set rsOFR = Conn.Execute(sql)
Do until rsOfr.eof response.write "Dag: " & WeekdayName(weekDay(rsOFR("dato"))-1) & " " & rsOFR("Dato") & "<br>" rsOfr.movenext loop
output:
SELECT * FROM OFR WHERE dato BETWEEN #18-04-2005# AND #22-04-2005#Dag: mandag 19-04-2005 Dag: tirsdag 20-04-2005 Dag: onsdag 21-04-2005
ja det ville nok være nemmeste for dig Altså først skrive dagene og dernæst ugerne Det med datoerne kan det måske hjælpe sådan her? response.write "Dag: " & WeekdayName(weekDay(rsOFR("dato"),2)) & " " & rsOFR("Dato") & "<br>"
to sek...måske er det mig som har vildledt dig Kan det tænkes at between kun vælger datoer imellem mandag og fredag uden mandag og fredag prøv se om den her ik klarer tricket for dig sql = "SELECT * FROM OFR WHERE dato >= #"&mandag&"# AND dato <= #"&fredag&"#"
ja ok så if WeekdayName(rsOFR("Dato")) = "mandag" then skriv ud fra database else skriv noget alternavtivt end if rsOFR.MoveNext if WeekdayName(rsOFR("Dato")) = "tirsdag" then skriv ud fra database else skriv noget alternavtivt end if ....osv
Har du kun et indlæg pr dato i databasen? For der skal jo også et tjek på om man er eof if Not rsOFR.EOF AND WeekdayName(Weekday(rsOFR("Dato"))) = "mandag" then skriv ud fra database else skriv noget alternavtivt end if
Nej kom ikke videre.. tror ikke du helt forstod hvad det var jeg ville, men har droppet det nu, ellers tak
Synes godt om
Ny brugerNybegynder
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.