Problemas con update y delete en vb6

Tengo un programa en vb6 en el que tengo que consultar, insertar, modificar y eliminar registros de una base de datos de SQL Server.
La conexión, la consulta y la inserción de datos me han funcionado bien:
ODBC = "ODBC;DATABASE=Prueba;UID=sa;DSN=Pedido"
Set BD = OpenDatabase("", False, False, ODBC)
Set Rs = BD.OpenRecordset("SELECT * FROM CAT_BIENES WHERE ID_BIEN='" & txtclave.text & "'")
BD.Execute "INSERT INTO CAT_BIENES VALUES('" & txtclave.Text & "','" & txtdescripcion.Text & "')"
El problema que tengo es al querer modificar o eliminar.
Para modificar tengo la sig. Instrucción:
BD.Execute "UPDATE CAT_BIENES SET DES_BIEN='" & txtdescripcion.Text & "' WHERE ID_BIEN='" & txtclave.text & "'"
Al ejecutarlo me manda el siguiente error:
La operación debe usar una consulta actualizable. (Error 3073)
Para eliminar tengo la sig. Instrucción:
BD.Execute "DELETE FROM CAT_BIENES WHERE ID_BIEN='" & cve & "'"
Pero me manda el sig. Error:
Error 3086: No se pudo eliminar en las tablas especificadas.
No sé que estoy haciendo mal. Buscando en internet siempre encuentro código como el mío, pero a mí no me funciona.

1 respuesta

Respuesta
Una consulta de acciones es una instrucción SQL que actualiza, elimina o inserta registros en una base de datos. Una consulta de acciones no devuelve ninguna fila, he ahí el por que te marca un error, las instrucciones están bien, solo que tienes decirle que tipo de error te va a mandar, por ejemplo para una consulta al final debes de poner:dbOpenSnapshot
"Db.Execute TextSql, dbOpenSnapshot"
Y para las cunsultas de eliminar y de insertar,
"Db.Execute TextSql, dbFailOnError"
Para hacer que el método Execute devuelva un error de tiempo de ejecución si alguno de los registros afectados está bloqueado o no se puede actualizar o eliminar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas