Ayuda para realizar búsquedas en vb

Por favor necesito que me envíen un ejemplo bien claro y sencillo de como utilizar el dbgrid en visual basic. Lo que necesito es realizar una búsqueda por nombre, y cuando en el dbgrid me aparezcan varios clientes con el mismo nombre, dar doble clic sobre el que me interesa y que se despliegue la información de ese cliente.

1 Respuesta

Respuesta
Según mi experiencia, el trabajo con DBGRID ha sido un poco desconcertante. Me he peleado mucho con el pero no he conseguido acabar de dominarlo.
Te recomiendo que en vez de utilizar DBGRID utilices el objeto LISTVIEW que está en una de las librerías de windows common controls.
Este control es como el listado de archivos de explorer, pero se puede configurar como si fuera un grid. Cada linea del grid tiene un código (un KEY) que lo determina unívocamente. Po eso permite hacer muchas más cosas.
Te mando un ejemplo de como se utiliza.
'PONER EL LISTVIEW COMO UN GRID
propiedaades generales,view=3 (lvwReport)
'CARGAR EL LISTVIEW
Dim clmx As ColumnHeader
Dim itmx As ListItem
'cabeceras
Set clmx = lv.ColumnHeaders.Add(, , "DÍA")
Set clmx = lv.ColumnHeaders.Add(, , "Operario")
Set clmx = lv.ColumnHeaders.Add(, , "Horas Extra")
'añade una linea
Set itmx = lv.ListItems.Add(, rs!Nombre_Parte, DateSerial(Val(Mid(rs!fecha, 1, 4)), Val(Mid(rs!fecha, 6, 2)), Val(Mid(rs!fecha, 9, 2))), 1, 1)
el segundo y el tercer parámetro son los importantes
el segundo es la key y el tercero es el texto que aparecera.
Ahora ya tenemos creado el objeto archivo, por llamarlo así. Ahora colgaremos las propiedades del archivo.
itmx.SubItems(1) = rs!Operario
itmx.SubItems(2) = rs!horas_extra
Puedes añadir tantas columnas como quieras
'evento click
Private Sub lv_ItemClick(ByVal Item As MSComctlLib.ListItem)
Para acceder a la nombre de la clave de la fila sobre la que se ha hecho click haz lo siguiente
Item.Key
Puedes acceder a todos los subcampos o subitems o columnas, como quieras llamarlo del item.
end sub
Private Sub lv_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Este evento se produce si añades un check box al list view en la ventana de propiedades y alguien efectúa un check
Item. Key
end sub
'Para resetear haz clear del list view
Lv. ListItems. Clear
Lv. ColumnHeaders. Clear
En principio no se puede controlar el doble click. Si quieres controlarlo. En el evento doble click del control produce por código un evento item. Click y verifica si ha hecho click sobre algún item.
Hasta luego espero que te haya servido de ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas