Fejl ved brug af "request.querystring"
Jeg har en side hvor nogle data bliver hentet fra en database. De bliver så listet på en række og ved hver post er der et link som åbner et popup vindue. I dette popup vindue skulle der så kun vises data fra en ene bestemte post.. Jeg har spurgt om det tidligere og fik det til at virke, men kun i et test dokument og med en test database. Så kopierede jeg det over i et nyt dokument, og rettede lidt i koden så det passede med den nye database, og vupti - så virkede det ikke..Det virker fint nok med den første side der lister alle posterne, men når jeg åbner popupvinduet melder den denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
ODBC driver does not support the requested properties.
/lordpoke/popup.asp, line 17
Linje 17 = rs.Open strSQL, strDSN, 1
Min kode for siden hvor alle posterne bliver listet er:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>TITLE</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<body>
<table style="width:100%;height:100%;" cellpadding="0" cellspacing="0">
<tr>
<td style="height:100%;vertical-align:middle;">
<table style="width:760px;border:2px solid #005522;margin:0px auto;" cellpadding="0" cellspacing="0">
<tr>
<td style="width:430px;border-right:2px solid #005522;padding:10px;vertical-align:top;" rowspan="7">
<table cellpadding="0" cellspacing="6">
<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
intPage = 1
End If
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT vnr, mrk, mdl, vinfo, hp FROM t_produkter WHERE hp = true"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
rs.PageSize = 4
rs.AbsolutePage = intPage
intRecCount = rs.PageSize
intPageCount = rs.PageCount
Do While Not rs.EOF And intRecCount > 0
If rs("hp") = true then
%>
<tr>
<td style="width:100px;height:100px;"><img src="billeder/<% Response.Write rs("vnr") %>.jpg" width="100" height="100"></td>
<td style="width:276px;height:100px;"><font class="pro_l">
<% response.write (rs("mrk") & " " & rs("mdl") & " (" & rs("vnr") & ")") %>
</font><br>
<%
If len(rs("vinfo")) > 30 Then
Response.write(left(rs("vinfo"),30) & "...")
Else
Response.Write rs("vinfo")
end if
%>
<br><br>Klik <a href="#" onClick="MyWindow=window.open('popup.asp?vnr=<% response.write rs("vnr")%>','MyWindow','toolbar=no,location=yes,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=600,height=800'); return false;">HER</a> for mere info</td>
</tr>
<%
End If
intRecCount = intRecCount - 1
rs.MoveNext
Loop
End If
rs.Close
Set rs = Nothing
%>
</table></td>
<td class="menu" style="height:135px;"><font class="os">Produkter</font><br>
<%
Response.Write "Side " & intPage & " af " & intPageCount & "<br>"
If Clng(intPage) > 1 Then
Response.Write "<a href=produkt.asp?page=" & intPage - 1 & ">Forrige side</a>"
Else
Response.Write ""
End If
Response.Write " "
For intNum = 1 To intPageCount
Response.Write "<a href=produkt.asp?page=" & intNum & ">" & intNum & "</a> "
Next
Response.Write " "
If Clng(intPage) < Clng(intPageCount) Then
Response.Write "<a href=produkt.asp?page=" & intPage + 1 & ">Næste side</a> "
Else
Response.Write ""
End If
%></td>
</tr>
<tr>
<td class="menu">Forside</td>
</tr>
<tr>
<td class="menu">Billeder</td>
</tr>
<tr>
<td class="menu">Firmaprofil</td>
</tr>
<tr>
<td class="menu">PHOTOCARE.DK</td>
</tr>
<tr>
<td style="width:310px;height:175px;background-image:url(logotest.jpg);"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
...og min kode for mit popup vindue ser sådan ud:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Paging af et recordset</title>
</head>
<body>
<table border="1">
<%
Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT vnr, mrk, mdl, vinfo FROM t_produkter where vnr=" & request.querystring("vnr") & ""
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
%>
<tr>
<td><img src="billeder/<% Response.Write rs("vnr") %>.jpg"></td>
</tr>
<tr>
<td><font class="pro_l">
<% response.write (rs("mrk") & " " & rs("mdl") & " (" & rs("vnr") & ")") %>
</font><br>
<%
Response.Write rs("vinfo")
%></td>
</tr>
<%
rs.Close
Set rs = Nothing
%>
</table>
</body></html>
Det virker hvis jeg sletter:
where vnr=" & request.querystring("vnr") & ""
eller erstatter det med:
where hp = true"
Jeg har siddet og rodet med det et stykke tid og syntes ikke at jeg kommer nærmere end konklusion..
Nogen der kan hjælpe?