<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("users.mdb")
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg " & _
" order by 5 desc"
Set rs = db.Execute(SQL)
Do until rs.EOF
%>
Med denna kod får jag detta fel:
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/slauson/db/1/forum.asp, line 15
MEN, bara ibland. Det är det som är det skumma.
Ibland så syns trådarna som dom sak.
Det var LarsG som hjälpte mig med den här satsen förut, så han kanske vet så där på rak hand vad som är fel. Om det nu inte är jätte enkelt att lista ut, vilket det bergis är.
Men ett annat fel som jag inte förstår mig på är att den sroterar rätt med denna SQL-sats:
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg " & _
" order by 5 desc"
Men inte med denna:
SQL = "select f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik, " & _
" max(iif(f2.Datum is null,f1.datum,f2.datum)) " & _
" from forum f1 left outer join forum f2 " & _
" on f1.fid = f2.svar " & _
" where f1.svar = 0 " & _
" group by f1.FID, f1.Namn, f1.Rubrik, f1.Inlagg, f1.KlisterRubrik " & _
" order by 5 desc"
Med denna kod så sorterar den inte så att den tråd som fått senaste svar hoppar högst upp!
Vad är det nu som är fel då?
Det enklaste är nog att ändra i ORDER BY, så att det istället för att sortera på det femte 'fältet' i select-listan, sorterar på det sjätte. Du har ju lagt in ett till fält i select-listan, så ordningsnumren är inte samma.