| Usuario |
No me deja cerrar un Recordset |
Desconocido
|
| Enviado - 27/3/2003 |
| |
Tengo el siguiente codigo:
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
cnn.Open "provider=Microsoft.Jet.OLEDB.4.0;data source= <base de datos>"
'Consultar si existe el registro
Set rst = cnn.Execute("SELECT * FROM <tabla> WHERE <condition>)
If rst.BOF Or rst.EOF Then
MsgBox "Registro no encontrado"
Else
Set rst = cnn.Execute("DELETE * FROM <tabla> WHERE <condition>)
MsgBox "Usuario borrado"
End If
Set rst = Nothing
Set cnn = Nothing
rst.Close
cnn.Close
El caso es q me hace todo bien hasta q llega a "rst.Close", q no me deja ejecutarla, xq dice q el objeto está cerrado. Si quito el "set rst = Nothing" sigue sin dejarme cerrar el objeto
Alguien me podría decir q estoy haciendo mal??
Gracias |
| |
|
fmarredo
493 Mensaje(s)
|
| Enviado - 27/3/2003 |
| |
Te dice que el objeto está cerrado porque la sentencia SQL que pusiste (Set rst = cnn.Execute("DELETE * FROM <tabla> WHERE <condition>)
) es una eliminación, la cual no devuelve datos.
Deberías ejecutarla sin asignársela al recordset
cnn.Execute "DELETE * FROM <tabla> WHERE <condition>"
|
| |
|
El Guru
43 Mensaje(s)
|
| Enviado - 27/3/2003 |
| |
Aparte, hay otro tema y es que estas destruyendo el objeto antes de cerrarlo...
Set rst = Nothing
Set cnn = Nothing
rst.Close
cnn.Close
eso tendria que ir al reves, osea...
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
pero bueno en este caso el rst.close, no es aplicable.
|
| |
|