Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Mr_Doctor en 15 Enero 2009, 16:24 pm



Título: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 15 Enero 2009, 16:24 pm
Les Cuento el problema siguiente

Tengo que desarrollar un sistema telefonico en visual basic 6.0 con base de datos en access
  Para aquello estoy utilizando 3 combobox y un datagrid en un formulario los cuales deben estar asociados de la siguiente manera.

tengo 4 tablas

Establecimiento
- cod_establecimiento
- descripcion

Servicio
- cod_servicio
- descripcion
-cod_establecimiento

Unidad
- cod_unidad
- descripcion
-cod_sercivio

Usuario

- nombre
- telefono1
-telefono2
-cod_servicio

el primer combobox debe desplegar una lista de establecimientos , una vez seleccionado el establecimiento este tiene que desplegar los servicios de dicho establecimiento en el combobox2 .
Luego al seleccionar el servicio, este tiene que mostrar en el combobox 3 las unidades relacionadas al servicio. Y finalmente cuando selecciono en el combobox 3 la unidad, me tiene que mostrar en el datagrid de la parte baja del formulario el usuario y sus numeros de telefono.

queria saber como podria hacerlo para asociar esos combobox y finalmente se muestre la informacion en la grilla.

Saludos


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: gulabyte en 15 Enero 2009, 17:49 pm

supongo que la idea sería agregar los objetos de los combos mediante código: en el primer combo metes la lista que es fija y después que la lista del segundo combo se genere cuando le das click al objeto del combo, es decir algo como....

Código:
Private sub combo1_click...
   Select Case combo1.selecteditem
      Case "noseke"
         combo2.additem...
         combo2.additem...
         combo2.additem...
         combo2.additem...
      Case "nosekuantos"
         combo2.additem...
         combo2.additem...
         combo2.additem...
         combo2.additem...
    End Select
End sub

y lo mismo con los otros combos...

no sé como tienes que usar access y eso... es una idea ;D


salu10!!


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 15 Enero 2009, 17:51 pm
muchas gracias amigo , intentare eso y te cuento, aun mas opiniones son bienvenidas.

Saludos :D


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 15 Enero 2009, 18:25 pm
me dio un error de Method or data member not found.


Private Sub Combo1_Click()
  Select Case Combo1.selecteditem
    Case "Servicio de Salud"
         Combo2.AddItem "direccion"
         Combo2.AddItem "auditoria"
         Combo2.AddItem "recursos humanos"
         Combo2.AddItem "tesoreria"
      Case "Hospital Base"
         Combo2.AddItem "pediatria"
         Combo2.AddItem "cirugia"
         Combo2.AddItem "dental"
         Combo2.AddItem "nutricion"
    End Select
End Sub

 :huh:


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: gulabyte en 15 Enero 2009, 18:49 pm

lo de selecteditem creo que tienes que ponerlo así: Combo1.ItemData(Combo1.ListIndex)....


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: ssccaann43 © en 15 Enero 2009, 18:53 pm
Mira... primero que nada debes saber como listar el contenido de un campo de la tabla que creaste en el COMBO...

Para ello puedes ver este enlace (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/358-cargar-recordset-ado-en-combobox-listbox.htm)

Luego que hagas eso, lo que tienes que generar son QUERYS SQL "Consultas", donde lo que selecciones en el combo filtre y pues te muestre lo que filtraste en otro.

Revisa eso y cuentanos...  ;D


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando
Publicado por: seba123neo en 15 Enero 2009, 18:58 pm
Hola,es facil solo tenes que ir armando la consulta sql segun lo que vas seleccionando en los combos...

saludos.


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 16 Enero 2009, 16:46 pm
Podrias darme un ejemplo de las consultas
tendria que colocarlas en el codigo del combobox 3?  es necesario añadir algun codigo al datagrid?

La idea es que cada vez que seleccione en el combobox 3 (despues de haber pasado todo el filtro de los combobox anteriores) entonces  se muestre en el datagrid la informacion correspondiente de cada unidad (por lo que se desplega la lista de usuarios en el datagrid).

por eso me pregunto si no se puede cargar la lista de un combobox desde los campos de una tabla?.


saludos




Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Angeldj27 en 16 Enero 2009, 17:09 pm
Claro que lo puedes hacer.
Lo que debes hacer es setear el datagrid con la tabla y desde los combo llamas el evento click del combo3 haci seria mas o menos si hay dudas postea

Saludos...


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: ssccaann43 © en 16 Enero 2009, 17:09 pm
Prepararé un ejemplo, pero a ver si buscas información o lees un poco... No hacemos tareas...  >:(


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: ssccaann43 © en 16 Enero 2009, 20:42 pm
Ok, lo prometido es deuda... Te pediré un par de favores...

1ero Leete un manual o algún tutorial para que puedas entender como relacionar y usar una BD.

2do En un foro generalmente se resuelven dudas, no se hacen tareas. Sin embargo está departe del usuario que responda si te lo hace o no, en mi caso lo hice porque noté que no tienes ni la menor idea de como hacerlo.

3ro Revisa la web que te pase en el link, hay mucho material.


Hay muchas maneras de hacer lo que quieres, yo sencillamente busque la más fácil de hacerlo para que puedas entenderlo.

Te dejo el Link de Descarga Aquí (http://www.megaupload.com/?d=MYCYDRHX)

No te tomes a mal los favores pedidos, es solo para que puedas aprender más...


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 20 Enero 2009, 15:26 pm
muchas gracias po los comentarios  y el ejemplo de ayuda , trate de adaptarlo a mi caso pero el problema es que solo puedo hacerlo cuando me muestra en el combobox los codigos , y en mi caso no seria necesario el uso de labels.

otro problema que me surgio es que no me carga el segundo combobox


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando
Publicado por: seba123neo en 20 Enero 2009, 18:17 pm
si podes postea tu proyecto con la base de datos...es mas facil verlo..sino es un lio...


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: ssccaann43 © en 20 Enero 2009, 18:50 pm
muchas gracias po los comentarios  y el ejemplo de ayuda , trate de adaptarlo a mi caso pero el problema es que solo puedo hacerlo cuando me muestra en el combobox los codigos , y en mi caso no seria necesario el uso de labels.

otro problema que me surgio es que no me carga el segundo combobox


Esto es increible... Si no es necesario el uso de labels no los coloques y ya... El ejemplo que te pasé cumple con lo que pedías... Che, no te lo tomes a mal, pero busca aprender y estudia los codigos, aqui no se hacen tareas... >:(


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 20 Enero 2009, 20:52 pm
http://www.fileden.com/files/2006/11/24/415874/Consulta%20telefonica.rar  (http://www.fileden.com/files/2006/11/24/415874/Consulta%20telefonica.rar)  ahi esta el proyecto con la base de datos   
saludos :)


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Angeldj27 en 20 Enero 2009, 22:43 pm
Oyeme tienes que refrescar el combo2 nuevamente para que aparezca el listado de los servicos de segun el primer combo

Código:
If RST.EOF = False Then
    Label2.Caption = RST(1)
    While RST.EOF = False
        Combo2.AddItem RST(0)
        RST.MoveNext
    Wend
End If

Y en el adoc le debes cargar la tabla en load y no directamente como lo tiene de esta forma

Código:

Private Sub Form_Load()

Consulta.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\bd1.MDB;Persist Security Info=False"
Consulta.RecordSource = "SELECT * From usuario"
Consulta.Refresh

End Sub

Y luego en el evento que quieras le haces la consulta

Código:
 Consulta.RecordSource = "SELECT nombre_usuario as Nombre , red_minsal as Red Minsal, numero_externo as Numero Externo From usuario where a ='" & Combo2.Text & "' ORDER BY nombre_usuario"
Consulta.Refresh

Talves te haya ayudado..
Saludos.. ;D


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 21 Enero 2009, 13:00 pm
no funciono amigo trate de cambiarle lo que me dijiste y aun no funciona, el combobox 2 aparece deshabilitado y la tabla no carga al final


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Angeldj27 en 21 Enero 2009, 15:55 pm
Al combo2 lo tienes que abilitar tu en codigo pork lo tienes desabilitado asi cuando le cargas los datos:

Código:
Combo2.Enabled = True

Osea

Código:

Private Sub CargarCombo2()
Conect
opDB
SQL = "select * from servicio where cod_establecimiento='" & Combo1.Text & "'"
openRS
Combo2.Clear
    While RST.EOF = False
        Combo2.AddItem RST(0)
        RST.MoveNext
    Wend
    Combo2.Enabled = True
cerrar
End Sub

Y el grid no te va a cargar los datos pork no lo tienes seteado con ninguna tabla pork esta con el adodc pero ese esta con la tabla de usuario y esa no tiene los datos anteriores filtrados pero bueno.

Te recomiendo que te leas un par de manuales o investigues acerca de las database y las conexiones con vb ami me gusta el adodc para mis conexiones o pasate por la pagina del gille hay encontaras de todo.

Y despues de eso construye de nuevo tu proyecto y te ira mejor.

Saludos...


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando
Publicado por: seba123neo en 21 Enero 2009, 19:12 pm
digamos que esta mas o menos bien...el programa anda yo lo probe y bueno le faltan cosas y veo codigo repetido muchas veces y veo que cerrar y abris constantemente las conexiones y eso no debe ser asi,la conexión tendria que quedar siempre abierta...aparte estas trabajando con el control ADODC y es mejor trabajar sin controles o sea directamente con codigo...si tengo tiempo te preparo algo sin usar el control ADODC vas a ver que es mucho mejor, puede ser dificil entenderlo priemro pero es lo que se debe hacer...despues te preparo algo...pero igualmente anda leyendo sobre ADO en internet que esta lleno de cosas..como declarar los recordset etc...

PD:ahi te lo corregi un poco fijate ahora no usa controles...

Consulta Telefonica (http://www.uploadsourcecode.com.ar/d/gibZwySdbtwLTAx9xPQe4M0ME912zB0m)

saludos.


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: Mr_Doctor en 22 Enero 2009, 13:59 pm
muchas gracias por tu ayuda, el codigo sin el ado parece mucho mas simple
 ::) 

Ahora lo unico que me falto fue simplemente que en vez de mostrar los codigos en el combobox cuando lo seleccione muestre los nombres correspondiente a los codigo.

Private Sub CargarComboServicio()
    RSTAux.Open "SELECT * FROM servicio WHERE cod_establecimiento='" & CmbEstablecimiento.Text & "'", CNN, adOpenStatic, adLockOptimistic
   
    CmbServicio.Clear
    Do Until RSTAux.EOF
        CmbServicio.AddItem RSTAux(0)
        RSTAux.MoveNext
    Loop
   
    RSTAux.Close
End Sub

como podria modificar ese codigo para que a la vez de relacionarme los codigos que unen las tablas , en vez de mostrarme en la lista del combobox los codigos me muestre los campos del nombre de descripcion.

Gracias :)


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando
Publicado por: seba123neo en 22 Enero 2009, 18:07 pm
si, yo tambien lo vi raro porque es feo que muestre el id en vez la descripcion...el usuario se va a perder...para mostrar el nombre y relacionarlo con el id hay 2 formas, yo te recomiendo la segunda...

1 - al cargar el combo cargar el nombre...pero el combo tiene una propiedad llamada ItemData, donde ahi le podes cargar numeros para relacionar el nombre...o sea cargas el nombre y en la propiedad ItemData vas cargando los id....y cuando hagas la consulta para cargar los demas combos tenes qeu consultar la propiedad ItemData que es la que tiene el id...

el problema de la propiedad ItemData es que solo acepta numeros...si tenes una letra en el id ..no anda...

2 - usar el control llamado DataCombo que este si acepta id alfanumericos...

ahi te subi el ejemplo con el datacombo...es lo mismo solo cambia un poco...

Telefonia con Datacombo (http://www.uploadsourcecode.com.ar/d/9tpR1sUL8Tebb5phdZWGm4tQBo8agoSB)

saludos.


Título: Re: [MOVIDO]-Acerca de Filtrar 3 combobox y mostrar resultado en grilla. Usando VB6 y Access
Publicado por: boa144 en 28 Marzo 2012, 06:56 am
Buenas Noches

Seria tan amables de compartir un ejemplo dado que tengo el mismo caso.

Gracias