Delete con condicion Where tipo Numero

Espero me puedan ayudar con este problema en mi línea de código que es esta:

Private Sub Comando71_Click()
Dim strSQL As String
strSQL = "DELETE * FROM Tbl_SALIDAS WHERE Codigo_Movimiento  = '" & Me.Codigo_Movimiento.Value
CurrentDb.Execute strSQL, dbFailOnError
End Sub

lo que deseo hacer, como pueden ver, es una consulta de eliminacion dependiendo el valor del campo "Codigo_Movimiento", el problema esta en que me marca error en la parte del WHERE ya que el valor es numerico, y tengo entendido de que es diferente la manera de ponerlo entre comillas. Ya traté de esta manera:

Private Sub Comando71_Click()
Dim strSQL As String
strSQL = "DELETE * FROM Tbl_SALIDAS WHERE Codigo_Movimiento  ='" & Me.Codigo_Movimiento.Value &"'"
CurrentDb.Execute strSQL, dbFailOnError
End Sub

pero me manda un error "No coinciden los tipos de datos en la expresion de criterios".

2 respuestas

Respuesta
2

Vale que te confundas en si debes usar o no las comillas cuando el valor es numérico (que no las tienes que usar), pero lo que siempre, siempre es un error es poner una sola comillas como estás haciendo:

Private Sub Comando71_Click()
Dim strSQL As String
strSQL = "DELETE * FROM Tbl_SALIDAS WHERE Codigo_Movimiento  = " & Me.Codigo_Movimiento.Value
CurrentDb.Execute strSQL, dbFailOnError
End Sub

La solución que te ofrece Leo, tiene el mismo problema, además de que convertir el valor a cadena de texto para asignarlo a un campo numérico no soluciona nada.

Un saludo.


Svein, gracias por tu respuesta, observe lo siguiente: al poner las comillas como me indicas, y al ejecutar el botón de comando, observe que no hacia nada visualmente, pero en realidad si borra el registro en la tabla, pero al no ver que el registro se borraba en el formulario, volví a dar clic en el botón y me mandaba un error y los campos del formulario aparecían así "#Eliminado", ¿a qué se debe esto?... mi solución fue poner una línea de código para hacer un refresh y otra para poner el formulario a nuevo registro, esto para evitar que el usuario vea el error, aunque realmente si se halla eliminado el registro...

¿Qué otra solución me puedes dar Svein para evitar el poner líneas de más? ¿O consideras que esta bien lo que hice?

Mis saludos!

El "error" #Eliminado es porque el registro ya no existe (ya lo has borrado).

El refresh está bien por sí solo, pero si lo mandas a un registro nuevo, yo no lo pondría.

Respuesta
1
Prueba con el siguiente codigo
Dim strSQL As String
strSQL = "DELETE * FROM Tbl_SALIDAS WHERE Codigo_Movimiento  = '" & str(Me.Codigo_Movimiento.Value)
CurrentDb. Execute strSQL, dbFailOnError

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas