Mi sono imbattuto in questo problema che non riesco a risolvere:
Devo ordinare dei dati di un database di access con due pagine asp: query.asp e test.asp;
la query genera una lista lunghissima che devo paginare su più pagine. Bene su test.asp se utilizzo la linea 49 tutto ok se invece utilizzo la linea 48 la prima pagina è ok ma se vado su un'altra pagina utilizzando i link in basso mi da il seguente errore:
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Il driver ODBC non supporta le proprietà richieste.
/test.asp, line 48
Posto i relativi codici:
query.asp
<html>
<head>
<title>Query</title>
</head>
<body>
<p class="Stile2"></p>
<p class="Stile1">Ricerca sul Database </p>
<hr>
<p align="justify" class="Stile2"></p>
<form method="post" action="test.asp">
<p align="center" class="Stile2"><span class="Stile2">Ordina per:</span>
<select name="Filtro1">
<option value="Cognome" >Cognome
<option value="Eta" >Eta
</select>
<span class="Stile2">e per:</span>
<select name="Filtro2">
<option value="Cognome" >Cognome
<option value="Eta" >Eta
</select>
<input type="submit" value="Filtra">
</form>
</p>
</body>
</html>
test.asp
<%@LANGUAGE = VBScript%>
<%
' Rileva le variabili del form
Filtro1 = Request( "Filtro1" )
Filtro2 = Request( "Filtro2" )
' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
Dim sc, cn, rs, quanti, pag, contatore
' DEFINISCO LA STRINGA DI CONNESSIONE
sc = ""
sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
sc = sc & Server.MapPath("database.mdb")
' IMPOSTO LA CONNESSIONE EDIL RECORDSET
Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
' APRO LA CONNESSIONE COL DATABASE
cn.Open sc
' DEFINISCO IL NUMERO DI RECORD DA VISUALIZZARE PER OGNI PAGINA
quanti = 5
' RECUPERO IL NUMERO DI PAGINA CORRENTE
' E CONTROLLO CHE NON SIA INFERIORE A 1
pag = Request.QueryString("pag")
If IsNumeric(pag) = False Or pag < 1 Then pag = 1
' IMPOSTO UN CONTATORE
contatore = 0
%>
<html>
<head>
<title>Paginazione dei risultati di query molto lunghe in ASP</title>
<style>a { color: blue; }</style>
</head>
<body>
<table align="center" width="518" border="1">
<%
' APRO IL RECORDSET
rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY "& Filtro1 &", "& Filtro2 &"", cn, 1
' rs.Open "SELECT Cognome, Nome, Indirizzo, Citta, Eta FROM Utenti ORDER BY Eta, Cognome", cn, 1
' EFFETTUO MATERIALMENTE LA PAGINAZIONE
rs.PageSize = quanti
rs.AbsolutePage = pag
' ESEGUO IL CICLO
While rs.EOF = False And contatore < quanti
%>
<tr>
<td width="69"><%=rs("Cognome")%></td>
<td width="69"><%=rs("Nome")%></td>
<td width="226"><%=rs("Indirizzo")%></td>
<td width="59"><%=rs("Citta")%></td>
<td width="61"><%=rs("Eta")%></td>
</tr>
<%
rs.MoveNext
' INCREMENTO IL VALORE DEL CONTATORE
contatore = contatore + 1
Wend
%>
</table>
<p align="center">
<%If pag > 1 Then%>
Indietro
<%End If%>
<%
Dim x
x = 1
For x = 1 To rs.PageCount
If CInt(pag) <> x Then
%>
[<%=x%>]
<%
Else
%>
[<%=x%>]
<%
End If
Next
%>
<%If rs.EOF = False Then%>
Avanti
<%End If%>
</p>
</body>
</html>
<%
' UN PO DI PULIZIA...
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
%>
Qualcuno mi può aiutare?
Grazie

Rispondi quotando