Visual Basic - Busqueda en datagrid

Life is soft - evento anual de software empresarial
 
Vista:

Busqueda en datagrid

Publicado por SOnia (31 intervenciones) el 16/05/2006 09:19:17
Quisiera realizar una busqueda en un datagrid, para ello he creao una serie de textbox para introducir el dato a buscar, nombre, fecha, dni, y un checkbox, la cosa es que cuando realizo la busqueda para que seleccione aquellos registros q coincidan cn estos, debo de reyenar todos los datos, pero puede darse el caso en el q yo kiera realizar una busqueda de un solo campo, es decir, que si yo busco un nombre=Ana pues q m salgan todas las Anas que hallan, o si quisiera buscar por aquellos que tienen el chekbox activado, m aparezcan todos, alguien me podriia ayudar¨? yo en el Select he puesto lo siguiente:

' abrir recordset
larsRecordset.Open "SELECT * FROM pedido_cab where pedido_cab.num_pedido=" & txtnumpedido.Text & ", pedido_cab.proveedor=" & txtcodprov.Text & ", pedido_cab.empleado=" & txtcodemp.Text & ", pedido_cab.fecha_pedido=#" & txtfechapedido.Text & "#,pedido_cab.fecha_prevista_entega=#" & txtfechaprevista.Text & "#", , _
adOpenStatic, adLockOptimistic, adCmdText

pero poniendo esto pues tengo q rellenar todos los datos , y si yo kisiera consultar por un solo campo?? como seria?? y como pongo lo de chekbox? para q m busquen los q esten activados??
Espero q m podais ayudar!! muxas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Busqueda en datagrid

Publicado por jose carlos (340 intervenciones) el 16/05/2006 11:51:34
¿a qué te refieres con un solo campo? ¿a ver un solo campo o a consultar los datos que cumplan las condiciones de un solo campo?, si es la primera en la sentencia SQL cambia el * por el campo que quieres visualizar y si es la segunda cambia en el Where y deja solo el campo que quieres

No se si te habré servido de ayuda

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda en datagrid

Publicado por SOnia (31 intervenciones) el 16/05/2006 12:02:43
Me referia a q s cumpliera las condiciones de un solo campo, pero si quito el where como hago referencia al campo q kiero buscar, es decir, si kiero buscar el nombre= Pepe, la sentencia sql seria select * from empleado where empleado.nombre=' "Pepe" ' , no?? si kito el where.. dnd controlo para q maparezca solo los Pepe??
Gracias :-D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda en datagrid

Publicado por carlos (1 intervención) el 16/05/2006 16:27:11
Si quieres buscar solo un valor en especifico pues es asi como tu dices

"select * from empleado where empleado.nombre='Pepe'"

en este caso te selecciona solo aquellos registros cuyo valor en el campo NOMBRE sea solamente "Pepe"

si quitas la cláusula WHERE pues entonces te aparecerán TODOS los registros, si estos registros los ubicas en un datagrid, pues entonces haz una búsqueda con el método FIND donde se ubique en el primer "Pepe" que encuentre.

Por ejemplo..

supongamos que tenemos una tabla con los campos NOMBRE, DOMICILIO, CIUDAD, TELEFONO

Set RsDirectorio = New ADODB.RecordSet
RsDirectorio.Open "Select * from directorio order by nombre", CnDirectorio, adOpenStatic, adLockOptimistic, adCmdText

Con esta sentencia OPEN del RecordSet llamado RsDirectorio, se abren TODOS los registros de una tabla llamada "directorio", esta tabla pertenece a una base de datos cuya conexion se supone se hizo por medio del ADODB.Connection llamado "CnDirectorio", los datos se muestran ordenados por el campo nombre.

Ahora para que esta coleccion de datos se muestre en un datagrid se usa.

Set DataGrid1.DataSource = RsDirectorio

Con esto, ya debes de tener tu coleccion de datos en el datagrid, puedes hacer uso de las propiedades

DataGrid1.Columns(0).Caption ---> para poner título
.width --> para establecer el ancho
.format --> si acaso quieres establecer un formato

y otras propiedades que de momento no recuerdo.

PARA QUE EN EL DATAGRID SE UBIQUE EL PUNTERO SOBRE EL PRIMER REGISTRO CUYO NOMBRE EMPIECE POR "PEPE"

RsDirectorio.MoveFirst 'te ubicas en el primer registro
RsDirectorio.Find "nombre like 'pepe'"

con estas dos sentencias haces que en el datagrid se active en el primer registro cuyo campo nombre inicia con "pepe", acuérdate de controlar por medio de EOF y BOF el caso en que no se encuentre ningún registro con esas características.

También supongo que si vas a hacer una búsqueda por campo alguno, la coleccion de datos debe de estar ordenada por dicho campo.

Espero esto te sirva, si no con gusto te aclaro dudas que se te presenten.

Saludor y Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda en datagrid

Publicado por Gabriel (30 intervenciones) el 17/05/2006 19:41:49
Hola Carlos.
Te pregunto una vez que se posicione el puntero en el primer registro que encuentre en el grid en este caso "pepe" como puedo hacer para que el registro que seleccione se pongas en unos textboxes ya sea que se coloque en los texts el primero que encuentre o que sea pongan en los texts cualquier registro que seleciones ya sea con un click a con las flechas se vaya actualizando automatica.
Gracias.Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda en datagrid

Publicado por Manuel (24 intervenciones) el 21/12/2006 16:58:45
SELECT * FROM Empleados WHERE Nombre Like '%Pepe%'

Con eso solucionas tu problema, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Busqueda en datagrid

Publicado por Takumi (1 intervención) el 29/02/2008 00:47:28
yo te recomendaria que pusieras en el programa algo que te indique como quieres realizar la busqueda que tal con las opciones,

if opcion1.value= true then
"SELECT * FROM pedido_cab where pedido_cab.num_pedido="& txtnumpedido.Text & ", ,adOpenStatic, adLockOptimistic, adCmdText

elseif opcion2.value=true then
"SELECT * FROM pedido_cab where pedido_cab.proveedor=" & txtcodprov.Text &
txtnumpedido.Text & ", ,adOpenStatic, adLockOptimistic, adCmdText

...

end if

y asi sucesivamente

espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar