Hej Pirok
For at gøre det universelt skal du formatere dine datoer og lave en forespørgsel med disse datoer.
Prøv følgende (Jeg er ikke så stiv i VB script mere, men kommandoerne findes da):
If CInt(Day(Date)) < 10 Then
SlutDag = "0" & CStr(Day(Date))
Else
SlutDag = CStr(Day(Date))
End If
If CInt(Month(Date)) < 10 Then
SlutMaaned = "0" & CStr(Month(Date))
Else
SlutMaaned = CStr(Month(Date))
End If
SlutAar = Year(Date)
If CInt(Day(DateAdd("m", -1, Date))) < 10 Then
StartDag = "0" & CStr(Day(DateAdd("m", -1, Date)))
Else
StartDag = CStr(Day(DateAdd("m", -1, Date)))
End If
If CInt(Month(DateAdd("m", -1, Date))) < 10 Then
StartMaaned = "0" & CStr(Month(DateAdd("m", -1, Date)))
Else
StartMaaned = CStr(Month(DateAdd("m", -1, Date)))
End If
StartAar = Year(DateAdd("m", -1, Date))
Slut = " {d '" & SlutAar & "-" & SlutMaaned & "-" & SlutDag & "'} "
Start = " {d '" & StartAar & "-" & StartMaaned & "-" & StartDag & "'} "
strSQL = "Select * from Table WHERE dato BETWEEN "
strSQL = strSQL & Start & " AND " & Slut
Funktionen {d 'YYYY-MM-DD'} er SQL-92 compliant og formatere din dato til noget alle
ODBC kilder kan forstå (så vidt jeg ved). Du skal angive datoen på formen YYYY-MM-DD
ellers så duer det ikke. Derfor har jeg lavet noget konvertering af datoerne, da der kun
returneres et ciffer hvis dagen/måneden er under 10. Jeg ved ikke helt om år også skal
tjekkes for om der er 4 cifre (VB returnerer altid 4 cifre).
Hvis VBScript understøtter Format ville det være nemmere, men jeg kan ikke finde noget
om dette, kun FormatDateTime.
Det kan garanteret også gøres mere nydeligt, men du forstår nok ideen.
Et forslag.
Inden du løber igennem det returnerede recordset skal du nok lige lave en rs.MoveFirst og
et tjek af at du ikke har rs.bof = true and rs.eof = true.
mvh
AntonV