Programación General > Visual Basic 6.0 e inferiores
Problema con select from en base de datos access
(1/1)
nicagus:
Hola, es la primera vez que escribo en este foro asi que disculpen si cometo errores, hice un formulario para buscar registros en una base de datos de access y mostrar en un msflexgrid a los que coincidan con los criterios de búsqueda, el problema es que cuando quiero buscar un cliente segun el número de cliente me tira el siguiente error: " Error 3075 en tiempo de ejecución: Error de sintaxis (falta operador) en la expresión de consulta 'Número de cliente = 1 '.
El código es el siguiente:
--- Código: Visual Basic --- Private Sub Command1_Click()If Option1 = True ThenData1.RecordSource = "select * from Socios where Apellido = '" & Text1 & "'" Data1.Refresh If Data1.Recordset.EOF ThenMsgBox "El apellido : '" & Text1 & "'" & " No está en la Base de Datos", vbExclamation, "¡Por Favor Revisa el apellido!"Text1 = ""Text1.SetFocusEnd If ElseIf Option2 = True ThenData1.RecordSource = "select * from Socios where Número de cliente = " & Val(Text1)Data1.Refresh If Data1.Recordset.EOF ThenMsgBox "El número de cliente : '" & Text1 & "'" & " No está en la Base de Datos", vbExclamation, "¡Por Favor Revisa el número de cliente!"Text1 = ""Text1.SetFocusEnd If Private Sub Option1_Click()If Option1 = True ThenLabel2.Visible = TrueLabel2.Caption = "Introduce el apellido que buscas"Text1.Visible = TrueText1 = ""Text1.SetFocusEnd IfEnd Sub Private Sub Option2_Click()If Option2 = True ThenLabel2.Visible = TrueLabel2.Caption = "Introduce el número de cliente que buscas"Text1.Visible = TrueText1 = ""Text1.SetFocusEnd IfEnd Sub Private Sub Form_Load()MSFlexGrid1.ColWidth(0) = 300MSFlexGrid1.ColWidth(1) = 800MSFlexGrid1.ColWidth(2) = 2100MSFlexGrid1.ColWidth(3) = 2500MSFlexGrid1.ColWidth(4) = 1000Label2.Visible = FalseText1.Visible = False End Sub El programa funciona de esta forma: Yo selecciono si busco según el número de cliente o el apellido del socio mediante los option button, una vez que los seleccione tengo que escribir en el text1 lo que deseo buscar y presionar el botón buscar (command1), al hacer esto me tienen que aparecer en el msflexgrid los registros que coinciden con lo que escribi en el text1.
El problema lo tengo al seleccionar el option 1 y buscar el número de cliente (que es un campo tipo número), pero si busco según el apellido (campo tipo texto) no tengo ningun problema. ¿Estoy cometiendo algún error de sintaxis al buscar el número de cliente?. Espero que puedan ayudarme, desde ya se los agradezco.
F_Tanori:
El campo de tu tabla Socios se llama Número de cliente ?
con espacios? con acento? aunque no existe restriccion por parte de access no te recomiendo utilizar espacios en los nombres de los campos, tampoco caracteres que no sean del ingles, ni palabras reservadas de access o VB
Si no puedes cambiar el nombre del campo intenta los siguiente, usando corchetes para el identificador del campo
--- Código: Visual Basic --- Data1.RecordSource = "select * from Socios where [Número de cliente] = " & Val(Text1)
Saludos
Navegación
Ir a la versión completa