Consulta VB

Hola amig@s:
Tengo una duda referente a un programa que estoy diseñando para mi proyecto del instituto.
Estoy haciendo una base de datos para un programa de gestión de clientes, productos y facturación.
Por ahora todo bien hasta que he llegado al formulario de productos. A la hora de hacer el botón de borrar un producto, este hace una búsqueda de código de producto para eliminarlo, pero me da error por que dice que no coinciden los tipos. El tipo de dato de de tipo texto y creo yo lo tengo puesto en la consulta para que los busque por tipo numérico, pero por más vueltas que le doy no consigo arreglar el problema, a ver si alguien me puede echar un cable y decirme como puedo hacerlo.
Aquí os dejo el código que tengo puesto en el botón, aver si me decís que esta mal y que tengo que cambiar para solucionarlo.
Un Saludo Gracias.
Private Sub Borrar_Click()
Dim dbs As Database, registros As Recordset, num As Integer
Dim valor As Integer
Set dbs = CurrentDb
Set registros = dbs.OpenRecordset("select codigoproveedor, Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where [Codigoproducto] = " & CP, dbOpenDynaset)
num = registros.RecordCount
If num <= o Then
MsgBox "No existe el producto a borrar", vbInformation, "AVISO"
Else
valor = MsgBox("¿Esta seguro?", vbOKCancel, "Nota")
If valor = 1 Then
registros.Delete
CPROVEEDOR = 0
CP = ""
Nomb = ""
FAMI = ""
Precio = 0
CI = 0
MsgBox "¡Registro eliminado!", vbInformation, "Nota"
End If
End If
Registros.Close
dbs.Close
End Sub

3 Respuestas

Respuesta
1
Set registros = dbs.OpenRecordset("select codigoproveedor, Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where [Codigoproducto] = '" & CP & "'", dbOpenDynaset)
Respuesta
1
En la linea:
Set registros = dbs.OpenRecordset("select codigoproveedor,
Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where
[Codigoproducto] = " & CP, dbOpenDynaset)
la cambiamos por:
Set registros = dbs.OpenRecordset("select codigoproveedor,
Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where
[Codigoproducto] = '" & CP & "'", dbOpenDynaset)
He metido tu variable entre comillas simples.
Respuesta
1
Para empezar estas mal en lo que esta en negritas
Set registros = dbs.OpenRecordset("select codigoproveedor, Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where [Codigoproducto] = " & CP, dbOpenDynaset)
y para que funcione mejor quedaria asi
Set registros = dbs.OpenRecordset("select codigoproveedor, Codigoproducto, Nombre, Familia, Precio, CODIVA from Productos where Codigoproducto Like ' " & CP & " ' ", dbOpenDynaset)
Suerte y no dudes en consultar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas