Visual Basic - Problema con busqueda por caracter

Life is soft - evento anual de software empresarial
 
Vista:

Problema con busqueda por caracter

Publicado por Fran Caballero (2 intervenciones) el 17/06/2008 19:51:24
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 gestion de clientes, productos y facturacion.
Por ahora todo bien hasta que he llegado al formulario de productos. A la hora de hacer el boton de borrar un producto, este hace una busqueda de codigo 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 numerico, pero por mas vueltas que le doy no consigo arreglar el problema, a ver si alguien me puede echar un cable y decirme como puedo hacerlo.
Aqui os dejo el codigo que tengo puesto en el boton, aver si me decis 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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con busqueda por caracter

Publicado por lolo (163 intervenciones) el 17/06/2008 20:48:16
Si el campo "Codigoproducto" es de tipo texto, ponlo así

... where Codigoproducto =' " & CP & "'", etc

pero.. no sé de dónde sale CP, supongo que será una variable declarada como publica o a nivel de módulo.

y tampoco sé porqué indicas los campos en la consulta; si vas a eliminar el registro dá igual

Set registros = dbs.OpenRecordset("select * from Productos where Codigoproducto =' " & CP & "'", dbOpenDynaset)

Nota: Poner entre corchetes el nombre de un campo sólo es necesario cuando éste contiene caracteres extraños para VB (como vocales acentuadas) o espacios en el nombre del campo.

Aunque la mejor opción (y más rápida es atacar directamente a la tabla sin necesidad de abrir un recordset:

If MsgBox("¿Esta seguro?", vbOKCancel, "Nota") = vbOK Then
dbs.Execute "Delete From Productos Where Codigoproducto = '" & CP & "'"
.. etc, etc
Else
Exit Sub
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con busqueda por caracter

Publicado por Fran Caballero (2 intervenciones) el 17/06/2008 21:18:16
Ok muchas gracias lolo probera asi aver que pasa.
Un saluda Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con busqueda por caracter

Publicado por Diego (211 intervenciones) el 18/06/2008 02:00:56
Este lolo es la hostia.
Igual hace la zancadilla a una vieja al pasar la calle que te da una respuesta de VB que te cagas.
Para que luego lo pongais a parir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con busqueda por caracter

Publicado por lolo (163 intervenciones) el 18/06/2008 13:35:36
Es que depende de cómo me pille el dia, si estoy cabreado porque ha perdido el Madrid, pues le hago la zancadilla a la vieja y si estoy contento me cago en VB.

Independientemente de esos emuladores que se hacen pasar por mí para insultar a la gente. Yo nunca insulto, sólo los pongo a parir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar