8 messaggi dal 24 giugno 2003
Ho il seguente codice:

'prende l'user
User_form=Request.Form("User")

'apre il database e il rs
Dim cn
set cn = Server.CreateObject("ADODB.Connection")
cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/database.mdb")
Dim rs, strConn, strSql
set rs = Server.CreateObject("ADODB.recordset")
sql="SELECT * FROM tabella1 WHERE User"
rs.Open "SELECT * FROM tabella1 WHERE User like '"&User_form&"'", cn,3,3

'prendo 2 record già scritti e gli assegno delle variabili che mi serviranno in seguito
Nome_Cognome=rs.Fields("Nome_Cognome")
Email=rs.Fields("Email")

'spunto un campo Si/No abbinato a quell'user
rs.Fields("Accesso")=True
rs.Update

'chiudo rs
rs.Close

'riapro rs su un'altra tabbella
sql="SELECT * FROM tabella2 WHERE User"
rs.Open "SELECT * FROM tabella2 WHERE User like '"&User_form&"'", cn,3,3

'se l'user non è già presente nel database
If rs.EOF Then
'controlla se i dati inseriti sono corretti
If Request.Form("User")<>"" AND Request.Form("Password")<>"" AND Request.Form("Ri_Password")<>Request.Form("Password") Then

'se i dati inseriti sono corretti scrive i dati nel database
rs.AddNew
'qui recupero le variabili crate
rs.Fields("Nome_Cognome")=Nome_Cognome
rs.Fields("Email")=Email
rs.Fields("User")=Request.Form("User")
rs.Fields("Password")=Request.Form("Password")
rs.Update

Response.Redirect("conferma.asp")

'se ci sono campi vuoti manda alla pagina che comunica l'errore dei dati
Else
Response.Redirect("errore.asp")
End If
'se l'user già esiste manda alla pagina che comunica l'errore dell'user
Else
Response.Redirect("errore2.asp")
End If

'chiusura rs
rs.Close
'chiusura cn
cn.Close
%>

<%
else
Response.Write "<p><center><h2>Accesso negato</h2><a href=http://www.sito.it>RIPETI IL LOGIN</a></center></p>"
End If

Mi dice:

ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/manda.asp, line 43

La linea 43 è:

Nome_Cognome=rs.Fields("Nome_Cognome")

Credo che il problema sia la chiusura e la riapertura del rs. Come posso risolvere?

NB: La mancanza dei puntini (..) nella path del database è voluta dato che il server utilizza IIS 6.
2.584 messaggi dal 14 maggio 2001
SE la linea 43 è a EOF=True significa che questo Sql
"SELECT * FROM tabella1 WHERE User like '"&User_form&"'"
non ha prodotto record
prova a mettere prima della riga dell'open un:

response.write "SELECT * FROM tabella1 WHERE User like '"&User_form&"'"
response.end

Cosa ti restituisce? se sicuro che ti deve dare dei record questo Sql?
8 messaggi dal 24 giugno 2003
Non va. Certo che deve dare dei record questo Sql?
2.584 messaggi dal 14 maggio 2001
Scusami cosa ti restituisce il response.write dell'Sql?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.