Först och främst vill jag bara skriva att jag har sökt en hel del på forumet efter mitt problem men inte lyckats hitta något som passar
Det är så att jag har gjort en liten sökfunktion på sidan, när man klickat på sök så kommer man till en ny sida (search.asp) som ska innehålla 30 resultat på varje sida. Använder mig av en form för sökningen som ser ut så här
Så långt är det inga problem, men när jag ska bläddra till tex sidan 2 (första söksidan fungerar korrekt och listar övriga sidor) så kommer det här felmeddelandet
Error Type:
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/musicdb/search.asp, line 105
Jag har paging på första sidan som fungerar fast då är det bara Querystrings och nu kommer det en form med i bilden
Så här ser hela koden ut för den sidan man kommer till efter man klickat på sökknappen
<%
Const perSida = 30
Dim page
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
Dim Connect
Dim RecSet
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\musicdb\db.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
RecSet.CacheSize = perSida
If Request.Form("sokord") <> "" Then
SQL = "Select * from Skivor Where Artist Like '%" & Request.Form("sokord") & "%' ORDER BY Artist asc, Skivnamn asc"
End If
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If RecSet.EOF Then
Response.Write"Nothing matched your search..."
Else
RecSet.MoveFirst
RecSet.PageSize = perSida
Dim TotalPages
TotalPages = RecSet.PageCount
RecSet.AbsolutePage = page
Dim count
%>
<%
Count = 0
Do While Not RecSet.EOF And Count < RecSet.PageSize
%>
<%
If TotalPages <> 1 Then
If (Int(page)) <> 1 Then
%>
<a href="search.asp?page=<%=(Int(page)-1)%>&what=<% =Request.Form("sokord") %>">«</a>
<%Else%>
«
<%End If%>
<%
Dim Pages
For Pages = 1 To TotalPages
%>
<%If (Int(Pages)) = (Int(page)) Then%>
<%=Pages%>
<%Else%><a href="search.asp?page=<%=Pages%>&what=<% =Request.Form("sokord") %>"><%=Pages%></a>
<%End If%>
<%Next%>
<%End If%>
<% If (Int(page)) <> (Int(TotalPages)) Then %>
<a href="search.asp?page=<%=(Int(page)+1)%>&what=<% =Request.Form("sokord") %>">»</a>
<%Else%>
»
<%End If%>
Problemet verkar vara att Request.Form inte kommer med till nästa sida. Någon vänlig själ som skulle kunna hjälpa till?
<%
Const perSida = 30
Dim page
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
Dim Connect
Dim RecSet
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\musicdb\db.mdb"
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.CursorLocation = 3
RecSet.CacheSize = perSida
sokord = Request("sokord")
If sokord <> "" Then
SQL = "Select * from Skivor Where Artist Like '%" & sokord & "%' ORDER BY Artist asc, Skivnamn asc"
End If 'Flytta längst ner?
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If RecSet.EOF Then
Response.Write"Nothing matched your search..."
Else
RecSet.MoveFirst
RecSet.PageSize = perSida
Dim TotalPages
TotalPages = RecSet.PageCount
RecSet.AbsolutePage = page
Dim count
Count = 0
Do While Not RecSet.EOF And Count < RecSet.PageSize
'Här ska väl typ loppen o utskrivandet vara antar jag.
If TotalPages <> 1 Then
If (Int(page)) <> 1 Then
response.write "<a href=""search.asp?page=" & (Int(page)-1)& "&sokord=" & sokord & """>«</a>"
Else
response.write "«"
End If
Dim Pages
For Pages = 1 To TotalPages
If (Int(Pages)) = (Int(page)) Then
response.write Pages
Else
response.write "<a href=""search.asp?page=" & Pages & "&sokord=" & sokord & """>" & Pages & "</a>"
End If
Next
End If
If (Int(page)) <> (Int(TotalPages)) Then
response.write "<a href=""search.asp?page=" & (Int(page)+1) & "&sokord=" & sokord & """>»</a>"
Else
response.write "»"
End If
%>
Iofs skulle jag vilja flytta ner "End If" som är precis under Sql-frågan till längst ner, annars lär du få ett felmeddelande om du inte har något värde med dig.
Skriver jag ut "sokord" så skriver det ut det som man söker efter, det man fyller i i formuläret alltså.
Måste dra till jobbet nu så jag får återkomma om den längre koden, hinner inte kollat på den nu.
Jay81, funkade solbulle's kod? annars: du sa att det verkar som om det ar tomt nar du klickar for att visa nasta sida? Vad skrivs ut pa sida2 tex fran formularet?
Det verkar som det fungerar nu, för den intresserade så kan jag skriva hur "jag" gjorde.
Jag använde koden som solbulle skrivit, fast då ville inte "sokordet" komma med i Querystringen så det ville inte lista ut det man sökt på så jag lade till en sak.
If Request.Querystring("sokord") = "" Then
sokord = Request.Form("sokord")
End If
' Det här står fortfarande kvar fast med ovanstående kod under sig
sokord = Request("sokord")
Och så flyttade jag End If i SQL-satsen långt ner
Det är säkert något onödigt som är med men det fungerar i alla fall