Ciao a tutti.
Devo fare la paginazione di una query dinamica. Ho scaricato l'esempio di Roby di www.creamweb.it, l'ho adattato al mio DB, funziona ed è un vero gioiello!
Il problema è che la mia query è dinamica -un interogazzione-, l'utente in una pagina anteriore sceglie la Categoria di prodotto che vuole vedere, e devi così arrivare il listino con la paginazione detta.

Eccoci il codice con query statica (funziona):
strSQL = "SELECT * FROM QProdotti WHERE IdCategoria=1"

Eccoci il codice dell'interrogazione che non funziona:
strSQL = "SELECT * FROM QProdotti WHERE IdCategoria=?"

I browser dicono:
"Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Driver ODBC Microsoft Access]Campo COUNT non corretto.
/default1.asp, line 34"

'******da errore in questa linea (34)***********************
objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText
'******fine linea errore************************

Eccoci tutto il codice utilizzato.
******************
<%@ Language=VBScript %>
<% response.buffer=true %>
<% Server.ScriptTimeout = 300 %>


<html>
<head>
<title>Creamweb.it - Paginazione</title>
</head>
<BODY MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0" bgcolor="white">
<TABLE WIDTH="500" CELLPADDING="0" CELLSPACING="0" BORDER="0" align="center">
<TR height="60" valign="middle">
<TD align="center">
<font face="verdana" size="3" color="red">Paginazione dei risultati di una query</font>
</TD>
<TR>
<TD>
<%
iPageSize = 10 'NUMERO RECORD PER PAGINA

If Request.QueryString("page") = "" Then
iPageCurrent = 1
Else
iPageCurrent = CInt(Request.QueryString("page"))
End If
ID = Request.QueryString("id")
strSQL = "SELECT * FROM QProdotti WHERE IdCategoria=?"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.PageSize = iPageSize
objRS.CacheSize = iPageSize
'******da errore in questa linea***********************
objRS.Open strSQL, objConn, adOpenStatic, adLockReadOnly, adCmdText
'******fine linea errore************************
reccount = objRS.recordcount
iPageCount = objRS.PageCount

If iPageCurrent > iPageCount Then iPageCurrent = iPageCount
If iPageCurrent < 1 Then iPageCurrent = 1

If iPageCount = 0 Then
Response.Write "

<table><td><font face='verdana' size='2' color='#000000'>Non sono stati trovati prodotti.</td></table></p>"
Else
objRS.AbsolutePage = iPageCurrent
iRecordsShown = 0
%>
<table cellpadding="0" cellspacing="0" border="0" width="95%">
<tr>
<td bgcolor="#cccccc">
<table cellpadding="2" cellspacing="1" border="0" width="100%">
<tr height="22">
<td bgcolor="#dddddd" WIDTH="6%"><font face="verdana" size="2" color="#000000">N.</font></td>
<td bgcolor="#dddddd" WIDTH="29%"><font face="verdana" size="2" color="#000000">Nome</font></td>
<td bgcolor="#dddddd" WIDTH="4%" align="center"><font face="verdana" size="2" color="#000000">Foto1</font></td>
<td bgcolor="#dddddd" WIDTH="11%" align="center"><font face="verdana" size="2" color="#000000">Marchio</font></td>
</tr>
<%
'SI VISUALIZZA IL CONTENUTO DELLA STRINGA SQL
'ALL'INTERNO DELLA TABELLA PRIMA DEFINITA
cont=1
Do While iRecordsShown < iPageSize And Not objRS.EOF
Dim Rig, bg
Rig = Rig + 1
If Rig Mod 2 = 0 then
bg = "#E4E4E4"
Else
bg = "#ccccff"
End if
Response.Write "<tr bgcolor = " & bg & "><td><font color='#000000' face='Verdana' size='1'>" & (iPageSize*iPageCurrent)-iPageSize+Cont & "</font></td>"
Response.Write "<td><font color='#000000' face='Verdana' size='1'>" & objRS("Nome") & "</font></td>"
Response.Write "<td align='center'><font color='#000000' face='Verdana' size='1'>" & objRS("Foto1") & "</font></td>"
Response.Write "<td align='center'><font color='#000000' face='Verdana' size='1'>" & objRS("IdMarchio") & "</font></td>"
Cont = Cont + 1
'POSIZIONAMENTO ALLA RIGA SUCCESSIVA DEL DB
iRecordsShown = iRecordsShown + 1
objRS.MoveNext
Loop
'PULIZIA DEGLI OGGETTI ADO
objRS.Close
Set objRS = Nothing
%>
</table>
</td>
</tr>
</table>
<%End if%>



<%If ipagecount <> 1 Then%>
<center>
<table>
<tr valign="middle">
<td width="50%" align="center" valign="middle"><font face="verdana" size="1" color="#000000">
[
<%if iPageCurrent-2 > 0 and iPageCurrent > 2 then%>
[img]images/first.gif[/img]
<%end if%>
<%if iPageCurrent > 1 then%>
[img]images/pre.gif[/img]
<%end if%>
<%if iPageCount > 2 then
if iPageCurrent-2 < 1 then da_pag = 1 else da_pag = iPageCurrent-2
if iPageCurrent+2 > iPageCount then fino_a_pag = iPageCount else fino_a_pag = iPageCurrent+2
else
da_pag = 1
fino_a_pag = iPageCount
end if%>
<%for i = da_pag to fino_a_pag%>
<%if i = iPageCurrent then%>
<font color="red"><%=i%></font>
<%else%>
<%=i%>
<%end if%>
<%next%>
<%if iPageCurrent > 0 and iPageCurrent < iPageCount then%>
[img]images/next.gif[/img]
<%end if%>
<%if iPageCurrent+1 < iPageCount then%>
[img]images/last.gif[/img]
<%end if%>
]

</font></td>
</tr>
<tr>
<td colspan="2" align="center"><font face="verdana" size="1" color="#000000">
<center>
Pagina
<font color="#FF0000"><%=iPageCurrent%></font>
di
<font color="#FF0000"><%=iPageCount%></font>
</center>
</font></td>
</tr>
</table>
</center>
<%end if%>
<%
objConn.Close
Set objConn = Nothing
%>
</TD>
</TR>
</TABLE>
</body>
</html>
***********************
Sono nuova in ASP e non riesco con questo problema.
Qualcuno mi potrebbe dare una mano?
Grazie tanti
Juana