SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: nicagus en Lunes 4 de Julio de 2011, 03:45

Título: Problema con select from en base de datos access
Publicado por: nicagus en Lunes 4 de Julio de 2011, 03:45
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
  1.  
  2. Private Sub Command1_Click()
  3. If Option1 = True Then
  4. Data1.RecordSource = "select * from Socios where Apellido = '" & Text1 & "'"
  5. Data1.Refresh
  6.  
  7. If Data1.Recordset.EOF Then
  8. MsgBox "El apellido : '" & Text1 & "'" & " No está en la Base de Datos", vbExclamation, "¡Por Favor Revisa el apellido!"
  9. Text1 = ""
  10. Text1.SetFocus
  11. End If
  12.  
  13. ElseIf Option2 = True Then
  14. Data1.RecordSource = "select * from Socios where Número de cliente = " & Val(Text1)
  15. Data1.Refresh
  16.  
  17. If Data1.Recordset.EOF Then
  18. MsgBox "El número de cliente : '" & Text1 & "'" & " No está en la Base de Datos", vbExclamation, "¡Por Favor Revisa el número de cliente!"
  19. Text1 = ""
  20. Text1.SetFocus
  21. End If
  22.  
  23.  
  24. Private Sub Option1_Click()
  25. If Option1 = True Then
  26. Label2.Visible = True
  27. Label2.Caption = "Introduce el apellido que buscas"
  28. Text1.Visible = True
  29. Text1 = ""
  30. Text1.SetFocus
  31. End If
  32. End Sub
  33.  
  34. Private Sub Option2_Click()
  35. If Option2 = True Then
  36. Label2.Visible = True
  37. Label2.Caption = "Introduce el número de cliente que buscas"
  38. Text1.Visible = True
  39. Text1 = ""
  40. Text1.SetFocus
  41. End If
  42. End Sub
  43.  
  44.  
  45. Private Sub Form_Load()
  46. MSFlexGrid1.ColWidth(0) = 300
  47. MSFlexGrid1.ColWidth(1) = 800
  48. MSFlexGrid1.ColWidth(2) = 2100
  49. MSFlexGrid1.ColWidth(3) = 2500
  50. MSFlexGrid1.ColWidth(4) = 1000
  51. Label2.Visible = False
  52. Text1.Visible = False
  53.  
  54. End Sub
  55.  
  56.  
  57.  
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.
Título: Re: Problema con select from en base de datos access
Publicado por: F_Tanori en Lunes 4 de Julio de 2011, 19:31
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
  1.  
  2. Data1.RecordSource = "select * from Socios where [Número de cliente] = " & Val(Text1)
  3.  

Saludos