Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

...el objeto está cerrado

Estas en el tema de ...el objeto está cerrado en el foro de Visual Basic clásico en Foros del Web. Hola a todos; Estoy tratando de eliminar un registro, cuando uso datos.delete me lo hace perfectamente, pero cuando lo hago a través de una instrucción ...
  #1 (permalink)  
Antiguo 13/07/2005, 10:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 21 años
Puntos: 1
Pregunta ...el objeto está cerrado

Hola a todos;
Estoy tratando de eliminar un registro, cuando uso datos.delete me lo hace perfectamente, pero cuando lo hago a través de una instrucción sql me retorna el siguiente error:
Error '3704' en tiempo de ejecución:
La operación no está permitida si el objeto está cerrado.

En las declaraciones principales tengo lo siguiente:
Private conexion As ADODB.Connection
Dim datos As Recordset

La instrucción sql que uso es:
sql = "DELETE * FROM gentio WHERE cedula like '" & cedula & "'"
Set datos = conexion.Execute(sql)


Y en Form_Load() tengo:
Const sPathBase As String = "C:/Sql/basededatos.mdb"
' Crear los objetos
Set conexion = New ADODB.Connection
Set datos = New ADODB.Recordset

With conexion
.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sPathBase & ";"
.Open
End With

' Indicarle de que tabla vamos a leer los datos
datos.Open "SELECT * FROM gentio", conexion, adOpenDynamic, adLockOptimistic

Muchas gracias y espero su pronta respuesta.
  #2 (permalink)  
Antiguo 13/07/2005, 12:26
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Eje!!! que pasó!!! error de conceptos compañera. No debes poner:

Set datos = conexion.Execute(sql)

simplemente:

conexion.Execute(sql)
  #3 (permalink)  
Antiguo 27/10/2005, 13:14
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Hola, nada mas pasaba por aqui para decir GRACIAS este post me ha ayudado aresolver ese mismo problema despues de dos horas aniquilando neuronas.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #4 (permalink)  
Antiguo 27/10/2005, 16:34
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 5 meses
Puntos: 6
hola bue, datos seria tu recordset supuestamente definido como un recordset

el tema es ke en algun lugar tenes ke cerrar ese recordset llamado datos, para usa ste comadno

set datos = nothing
tb podes usar datos.close

salu2
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #5 (permalink)  
Antiguo 31/10/2005, 17:18
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
En mi caso incurri en el error origen de este post

sql="insert ...."
Set datos = rs.Execute(sql)
...
rs.close

Y el error era que no se podia cerrar el recordset, y, si lo dejaba abierto luego de mucho uso habia mensajes de error de registros bloqueados.

Aplicando la solucion que propuso developer9, me olvide de usar un objeto recordset con nombre:

sql="insert ...."
connection.Execute(sql)

y sin usar recordset, adios al close :)
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 03:39.