Error al Actualizar o Borrar Registro en VB

Hola,
De antemano agradezco tu colaboración.
Tengo una app que accede a una bd en Access 97, y me presenta el siguiente problema:
Cuando intento actualizar o borrar un registro(fila) que veo en un DataGrid
El código que uso para borrar es el siguiente
Private Sub cmdEliminar_Click()
If Adodc2.Recordset.RecordCount > 0 Then 'EN EL ADO2 TENGO LA CONSULTA UQE MUESTRO EN EL GRID
nroIdReg = 0
If MsgBox("¿Está Seguro que Desea Borrar el Registro Seleccionado?", vbYesNo) = vbYes Then
nroIdReg = Adodc2.Recordset(0)
Adodc3.RecordSource = "select * from ServiciosPrestados where Id = " + CStr(nroIdReg) 'HAGO LA BUSQUEDA DEL REGISTRO ESPECÍFICO QUE DESEO BORRAR
Adodc3.Refresh
If Adodc3.Recordset.RecordCount > 0 Then
Adodc3.Recordset.Delete
End If
Adodc3.Recordset.Update
Call BorrarCampos
MsgBox "Registro Borrado", vbInformation
End If
Else
MsgBox "No hay registros para borrar.", vbInformation
End If
End Sub
De igual manera me sucede cuando intento actualizar un registro.
¿Cómo puedo solucionar ese error?
Muchas Gracias

1 Respuesta

Respuesta
1
Estas trabajando con el objeto ADO del diseñador, ese objeto tenia problemas al intentar realizar operaciones de borrado o actualización a los registros.
Te recomendaría que hicieras eso por código ADO puro y no dentro de ese objeto y solo lo utilices para mostrar o jecutar sentencias select.
Ese control solo es para demosraciones para aplicaciones serias no se utiliza.
Pasate por al página del guille www.elguille-info, y revisa el curso de VB6 si no sabes como utilizar ADO, o realiza una búsqueda por ADO en esa página.
Hola nuevamente, te comento lo siguiente, para todas las aplicaciones que he hecho accediendo a MySql, FireBird, SQLServer siempre he usado ado y nunca me ha sucedido algo igual, es más si hago esto:
Adodc1.recordsource="Select * from Caja where codigo=15"
adodc1.Refresh
if adodc1.recordset.recordcount>0 then
    adodc1.recordset.delete
    adodc1.recordset.update
end if
Me sigue mostrando el error, y con otro motor de bd no, por eso digo que el error tiene que ver con access (Nunca había trabajado con access)
¿Alguna Idea?
Con access yo todo lo hacia por código por problemas como el que describes.
¿Me puedes aclarar por favor a que te refieres por código?
Creas un objeto ADODB por código en el programa y a ese record set le pasas la cadena del DELETE o el UPDATE a la tabla y lo ejecutas desde allí, no desde el objeto ADODC que tu utilizas que es un objeto del diseñador de VB6.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas