Ayuda con Datagrid y una Base de datos hecha en Access

Iniciado por Helicot, 5 Enero 2008, 20:36 PM

0 Miembros y 1 Visitante están viendo este tema.

Helicot

Hola, solamente quisiera saber si existe una manera de hacer lo siguiente
Estoy haciendo un miniprograma que sirve para realizar busquedas de datos en una Base de datos hecha en Access, el formulario del programa contiene

1 Textbox (Text1)
1 Combobox (Combo1)
1 DataGrid (DataGrid1)
3 CommandButton (Command1, Command2, Command3)
1 Adodc (Adodc1)

Y estoy usando el siguiente codigo:

Public mensaje As String

Private Sub Combo1_Click()
Command1.Enabled = Not Combo1.Text = ""
End Sub

Private Sub Command1_Click()
If Form11.mensaje = "Escuela" Then
    Form11.Adodc1.RecordSource = "Select *from Pasante Where " & Label1.Caption & "= '" & Combo1.Text & "'"
Else
    Form11.Adodc1.RecordSource = "Select *from Pasante Where " & Label1.Caption & "= '" & Text1.Text & "'"
End If
Adodc1.Refresh
DataGrid1.Refresh
End Sub

Private Sub Command2_Click()
Unload Me
Form2.Show
End Sub

Private Sub Command3_Click()
Form11.Adodc1.RecordSource = "Select *from Pasante"
Adodc1.Refresh
DataGrid1.Refresh
End Sub

Private Sub Text1_Change()
Command1.Enabled = Not Text1.Text = ""
End Sub


Pasante es la tabla donde se realiza la consulta

Lo pongo a correr y funciona perfectamente, pero quisiera darle una actualizacion
Supongamos que la Base de datos tiene 2 registros:
El primer registro con Nombre "Juan Carlos"
El segundo registro con Nombre "Juan Antonio"
Y yo, por medio del programa hago una busqueda del registro "Juan", y no me aparecen los dos (deberian porque estos tienen el mismo primer nombre), porque ninguno tiene segundo nombre ademas de "Juan", ajuro tengo que poner "Juan Carlos" o "Juan Antonio" para que me salga uno de los dos registros que tiene la Base de Datos

Pueden ayudarme, please



Helicot




Helicot





Pendex

Yo te sabria decir pero no con en Adodc enlazado...sino mediante sentecias SQL...
sql = "Select * From Tabla where ((InStr([Tabla].[Campo],'" & Txt_buscado & "')<>0))"
Fijate si podes levantar datos de esta forma e ingresarlos al DataGrid mediante la instr:
DataGrid1.AddItem Tabla!Campo1 & vbtab & Tabla!Campo2 & vbTab...

Slds!

Chefito

Creo que lo que tu necesitas es el operador Like de Sql. Este operador compara una cadena que tu le pasas a un campo de registros con todos los registros. Con que contenga este pedazo de cadena te lo selecciona. Es la diferencia con el =, que con éste tiene que ser exacta. Ejem:
Form11.Adodc1.RecordSource = "Select *from Pasante Where " & Label1.Caption & "like '" & Combo1.Text & "'"
Yo creo que con esto valdria. Si combo1.text=Juan, pues te seleccionaria los dos registros de tu ejemplo. El operador like tiene dos comodines:
%, es equivalente al *. Es comodin de cualquier trozo de cadena.
_, es equivalente a la ?. Es comodin de un caracter en la cadena.
Hace mucho que no funciono con bbdd, creo que con la sentencia anterior funcionará, pero si no, pruebalo con Form11.Adodc1.RecordSource = "Select *from Pasante Where " & Label1.Caption & "like '" & Combo1.Text & "%'".
Saludos.
Moderador del foro oficial de AutoIt en español: www.AutoIt.es.

Todos tenemos inteligencia, lo malo es que algunos no nos acordamos donde la dejamos guardada ;)