Eliminar varios registros de una tabla

Tengo una tabla en access 2013 que contiene un control de pagos para un cliente la idea es que a través de un botón pueda eliminar todos los registros que contienen la tabla en el momento en el que ese control de pagos quedo mal creado

Eh intentado

Private Sub cmdBorraTodasCuotas_Click()
Dim DB As Database
Dim cSql As String
cSql = "DELETE * FROM tblplanpagos  WHERE idpedido = " & Me![txtidpedido] & ";"
DB.Execute cSql, dbFailOnError
End Sub

"PERO ME SALE SE HA PRODUCIDO UN ERROR 91 EN TIEMPO DE EJECUCION

VARIABLE DE OBJETO O BLOQUE WITH NO ESTABLECIDO

SI LE DOY A DEPURAR

EN LA LINEA  DB.Execute cSql, dbFailOnError   dice  error = 128 

3 respuestas

Respuesta
2

Te falta darle valor a la variable DB, con Set DB=CurrentDB:

Private Sub cmdBorraTodasCuotas_Click()
Dim DB As Database
Dim cSql As String
cSql = "DELETE * FROM tblplanpagos  WHERE idpedido = " & Me![txtidpedido] & ";"

Set DB=CurrentDB
DB.Execute cSql, dbFailOnError
End Sub

o directamente, puedes omitir esa variable:

Private Sub cmdBorraTodasCuotas_Click()
Dim cSql As String
cSql = "DELETE * FROM tblplanpagos  WHERE idpedido = " & Me![txtidpedido] & ";"

CurrentDB.Execute cSql, dbFailOnError
End Sub

Un saludo


Saludo agradezco tu colaboración eh utilizado la forma donde se omite la variable "CurrentDB.Execute cSql, dbFailOnError" pero ahora me encontré con otro error 3464 no coinciden los tipos de datos en la expresión de criterios, los campos idpedido y txtpedido son de tipo texto no se si en la definición del where estoy haciendo algo incorrecto

Si el criterio es de tipo texto, debe de ir entre comillas simples:

cSql = "DELETE * FROM tblplanpagos  WHERE idpedido = '" & Me![txtidpedido] & "';"

Respuesta
2

Pregunto, si ya estás en la propia base ¿para qué quieres decirle que la base es la actual, etc? Puedes poner simplemente en el botón

docmd.setwarnings false

docmd.runsql"delete * FROM tblplanpagos  WHERE idpedido = " & Me![txtidpedido] & ""

Suponiendo que idpedido se numérico

Respuesta
1

es delete from......, no delete * from

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas