Visual basic y form de busqueda

Mis conocimientos en vb 6.0 son casi nulos. Ya he logrado algunas cosas. Como nuevo, guardar, cancelar, modificar y eliminar registros.
Ahora estoy con la búsqueda.
En el frm_clientes hay un boton que me lleva al frm_clientesbuscar para buscar un cliente
En este frm tengo 4 opciones (Nombre, Apellidos. Población y provincia), un textbox y un datagrid. Elijo opción, escribo "Val" y el datagrid me filtra el nombre/apellidos/poblacion/provincia que contenga "Val".
Ahora viene mi problema. Al borrar "Val" del textbox (o lo que escriba) el datagrid no se actualiza. Y me da este error:
"Adodc1. Error de sintaxis en la clausula FROM"
Coloco el codigo que tengo en este form:
Dim XXX As String
Private Sub cmb_volver_Click()
frm_clientes.Show
Unload Me
End Sub
Private Sub Form_Load()
DataGrid1.Columns(0).Width = 700
DataGrid1.Columns(1).Width = 1500
DataGrid1.Columns(2).Width = 1500
DataGrid1.Columns(3).Width = 1500
DataGrid1.Columns(4).Width = 1000
DataGrid1.Columns(5).Width = 1500
DataGrid1.Columns(6).Width = 1500
DataGrid1.Columns(7).Width = 1000
DataGrid1.Columns(8).Width = 1300
DataGrid1.Columns(9).Width = 1300
DataGrid1.Columns(10).Width = 2200
End Sub
Private Sub txt_buscartexto_Change()
If opt_nombre = True Then
XXX = "nombre"
End If
If opt_apellidos = True Then
XXX = "apellidos"
End If
If opt_poblacion = True Then
XXX = "población"
End If
If opt_provincia = True Then
XXX = "provincia"
End If
With Adodc1
 If txt_buscartexto <> "" Then
   .Recordset.Filter = XXX & " like '*" + txt_buscartexto + "*'"
   Set DataGrid1.DataSource = Adodc1.Recordset
   Else
   .RecordSource = "select *from clientes"
   Set DataGrid1.DataSource = Adodc1.Recordset
'En el .Refresh es donde me da error. Al correr el programa me dice "Adodc1. Error de sintaxis en la clausula FROM"
.Refresh
 End If
 End With
End Sub
Gracias! Sea la que sea tu respuesta!

1 respuesta

Respuesta
2

Si el código lo pegaste literal, tienes mal la sintaxis de la SQL que te devuelve todos los registros, te falta un espacio en blanco entre el * y el from:

.RecordSource = "select * from clientes"

No, el código lo fui haciendo con tutoriales en internet, video en youtube, y adaptándolo a lo que me hacia falta. El que más me esta costando es la búsqueda, los otros botones, fue "sencillo" de crear.

Rectificado y sigue dando el mismo problema en el mismo sitio.

En el .Refresh

He probado de colocarlo fuera del with y me da el mismo error.

¿Alguna sugerencia?

Muchas gracias por su ayuda.

ADO no es mi fuerte, pero se me ocurren dos sugerencias para que pruebes:

1º/ cambia la parte del Else por ésta:

 Else
   .Recordset.Filter = ""   ' o prueba con Null en vez de ""
   Set DataGrid1.DataSource = Adodc1.Recordset

2º/ Después del else pon la misma instrucción que usas para cargar el recordset en un principio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas