Visual Basic - Quiero llenar un combo,y datagrid please help me

Life is soft - evento anual de software empresarial
 
Vista:

Quiero llenar un combo,y datagrid please help me

Publicado por Pedro (50 intervenciones) el 28/10/2005 16:38:24
Bueno lo que necesito es lo siguiente, ojala y alguien me pueda ayudar:
Tengo un formulario, en el cual mi primer control es un combo, luego un textbox, un command,
y dos datagrid.
Requerimiento:
1ero. Deseo que el combo presente el nombre de los campos de una tabla, tengo la tabla paciente, y los campos son: codigo, nombre, fech_nac...., de manera que al seleccionar uno de ellos, se tome en cuenta a la hora de hacer el filtro.
2do. Que el textbox sea utilizado para llenar el primer datagrid, por ejemplo: que yo seleccione en el combo: el campo nombre y en el textbox digite la letra: "a", entonces yo deberia ver en el 1er datagrid todos los que su nombre comienza con "a".
3ero. Al hacer click en alguno de los registros del primer datagrid , me presente su detalle en el segundo datagrid, por ejemplo para este caso selecciono un paciente, y me mostraria sus citas realizadas.

Agradecere la respuesta, si alguien no entiende algo me manda un mail a mi correo, o si puede me manda el proyecto de ejemplo a mi mail.
[email protected]
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:Quiero llenar un combo,y datagrid please help m

Publicado por ivan (1039 intervenciones) el 28/10/2005 17:33:12
Es algo lo que pides, espero poder ayudar un poco.

Al principio no entiendo bien lo de los combos, es uno o son 3 combos lo que quieres mostrar, segun veo intentas filtrar los registros por 3 campos que son: código, nombre y fecha_nac.

A ver si puedo contestar tus 3 requerimientos..:

"1ero. Deseo que el combo presente el nombre de los campos de una tabla, tengo la tabla paciente, y los campos son: codigo, nombre, fech_nac...., de manera que al seleccionar uno de ellos, se tome en cuenta a la hora de hacer el filtro..........."

Al Combo1 agregalo los valores de "Codigo, Nombre y Fecha de Nacimiento", lo puede hacer..:
Combo1.AddItem ("Codigo")
Combo1.AddItem ("Nombre")
Combo1.AddItem ("Fecha de Nacimiento")

"2do. Que el textbox sea utilizado para llenar el primer datagrid, por ejemplo: que yo seleccione en el combo: el campo nombre y en el textbox digite la letra: "a", entonces yo deberia ver en el 1er datagrid todos los que su nombre comienza con "a"....... "

El Textbox te serviría (a lo que entendí) como una referencia de búsqueda, este valor te puede servir para mostrar todos los registros que concuerden con el texto escrito en el TextBox, supongo para eso es el combo.

También supongo que al hacer clic en Botón (Command) es para que en el primer datagrid se activen todos los registros cuyo campo elegido en el Combo concuerden con el texto escrito en el TextBox. esto te pudiera servir para hacer el filtro.

En virtud de que el DataGrid proviene de un RecordSet puedes hacer esto..:

Select Case Combo1.Text
Case "Codigo":
Filtro=" where codigo Like '" & Text1.Text & "*'"
Case "Nombre":
Filtro=" where nombre Like '" & Text1.Text & "*'"
Case "Fecha de Nacimiento":
Filtro=" where fecha_nac Like '" & Text1.Text & "*'"
End Select
Rs.Open "Select * from paciente" & filtro, Conexion,........
Set DataGrid1.DataSource = Rs

ACLARO Y RECONOZCO QUE NO SE SI SEA LA FORMA CORRECTA DE USAR EL OPERADOR LIKE, YA QUE YO NUNCA LO HE USADO, pero por ahí va la idea...

"3ero. Al hacer click en alguno de los registros del primer datagrid , me presente su detalle en el segundo datagrid, por ejemplo para este caso selecciono un paciente, y me mostraria sus citas realizadas....."

Ya en el evento click del primer datagrid, tuvieras que abrir el RecordSet que alimenta al segundo DataGrid para que muestre los datos de que quieras.

cve_paciente = DataGrid1(0).Text
'suponiendo que la cve_paciente sea el primer campo o columna que se muestra en el datagrid
Rs2.Open "Select * from citas Where Paciente = " & cve_paciente,.....
Set DataGrid2.DataSource = Rs2

Cabe mencionar que Rs y Rs2 son variables tipo ADODB.RecordSet y Conexion se refiere a una conexión tipo ADODB.Connection; tan siquiera es asi como yo abro mis archivos y es así como yo haría lo que tu buscas, espero toda esta paja te sirva de algo.

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:Quiero llenar un combo,y datagrid please help m

Publicado por Pedro (50 intervenciones) el 28/10/2005 18:27:33
Gracias por la respuesta, pero solo se trata de un combo, en el cual quiero llenar todos los nombres de los campos.
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:Quiero llenar un combo,y datagrid please help m

Publicado por pedro (50 intervenciones) el 28/10/2005 18:41:53
sigo necesitando ayuda
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

Busca como conocer los campos de una tabla

Publicado por ivan (1039 intervenciones) el 29/10/2005 01:36:06
Ok, entonces en un combo quieres poner todos los campos de una tabla.

Si ya sabes cuantos campos son y cómo se llaman puedes hacerlo como te dije, con Combo1.AddItem.

Pero si quieres que se agreguen los campos de un combo de forma dinámica, o sea, que sirva para cualquier tabla entonces necesitas un función que te dé cuantos y cuáles campos tiene determinada tabla, entonces.....

Para esto recuerdo que ya hace casi como un mes se preguntó en este foro (o en el de Visual Basic AVANZADO o ADO) como hacer eso, yo no se como se haga, pero si recuerdo que hubo alguien que le contestó, revisa los mensajes anteriores y ahí vas a encontrar COMO CONOCER LOS CAMPOS DE UNA TABLA, creo que se hace con una propiedad Fields o Field del RecordSet, pero yo nunca he usado eso.

Ya con esa información puedes agregar en un Combo todos los campos de una consulta de un RecordSet.

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