Jag förstår inte varför inte detta fungerar. Som standard skall den hämta alla poster ifrån aktuella månaden ifrån databasen. Men den hämtar alla. Access databas och date är Datum/tid som fälttyp.
If Request.QueryString("year") = "" Then
strYear = Request.Form("year")
strMonth = Request.Form("month")
Else
strYear = Request.QueryString("year")
strMonth = Request.QueryString("month")
End If
strDate1 = Date()
strDate = Month(strDate1)
If Len(strDate) = 1 Then
strDate = "0" & strDate
End If
If Len(strMonth) = 1 Then
strMonth = "0" & strMonth
End If
If strYear <> "" and strMonth <> "" Then
sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid where Left(orders.date,4)=" & strYear & " And Mid(orders.date,6,2)=" & strMonth & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
ELseIf strYear <> "" and strMonth = "" Then
sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid where Left(orders.date,4)=" & strYear & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
ELse
sql="SELECT orders.orderid, sum(priceperunit*qty) AS gtotal, orders.dfname, dlname,ipnummer,cctype, personnummer, date, codeNO FROM orders INNER JOIN orderitems ON orders.orderid=orderitems.orderid where Left(orders.date,4)=" & Year(strDate1) & " And Mid(orders.date,6,2)=" & strDate & " and orderstatus=null or orderstatus='c' GROUP BY orders.orderid, dfname, dlname, ipnummer,cctype, personnummer, orders.date, codeNO Order By orders.orderid desc"
End If
Eftersom du använder or i WHERE så måste du gruppera med parenteser. Annars räcker det ju med att orderstatus är 'c' för att posten ska komma med.
Dessutom tycker jag att du borde använda datumfunktioner för att hämta ut månaden från fältet date. Att använda strängfunktioner på datum är att be om problem.
I Access går det väl alldeles utmärkt att använda Month(datumfält) och Year(datumfält). Annars är du ju beroende av att du vet exakt hur datumen lagras i databasen, och det kan man ju aldrig veta...
Datum och tid sparas iallafall så här: xxxx-xx-xx xx:xx:xx
Hur kan du vara så säker på det? Att Access-applikationen och / eller asp-sidan presenterar datumet på det sättet behöver inte betyda att det är lagrat så.