Enlazar Varios ComboBox

26/02/2005 - 23:25 por Jesus | Informe spam
Buenasss!!

Como puedo enlazar varios combobox?
Selecciono en un combobox un registro y en el otro
combobox me muestra "una relacion" con ese regisro.
Que el segundo combobox dependa de lo que selecciones en
el primero para mostrar una u otra cosa.

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Carlos Gómez
27/02/2005 - 10:17 | Informe spam
usa el evento selectedItemChanged (o algo así)


"Jesus" escribió en el mensaje
news:0bfb01c51c52$21c82cf0$
Buenasss!!

Como puedo enlazar varios combobox?
Selecciono en un combobox un registro y en el otro
combobox me muestra "una relacion" con ese regisro.
Que el segundo combobox dependa de lo que selecciones en
el primero para mostrar una u otra cosa.

Muchas gracias
Respuesta Responder a este mensaje
#2 J. Carlos Herrrero
27/02/2005 - 13:36 | Informe spam
Hola:
Prueba esto

En un Form:
Private Sub frmXXX_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim lsQuery As String
lsQuery = "Select ID_LISTADO, DESCRIPCION from LIS_LISTADO order by
DESCRIPCION"
gP_CargaCombo(Me.cboListado, lsQuery, "DESCRIPCION", "ID_LISTADO")
End Sub

Private Sub cboListado_SelectedIndexChanged(ByVal sender As Object, ByVal e
As System.EventArgs) Handles cboListado.SelectedIndexChanged
If Me.cboListado.SelectedIndex >= 0 Then
Dim lsQuery As String
lsQuery = "Select ID_TUTABLA, DESCRIPCION from TUTABLA order by DESCRIPCION"
Me.cboXXXXX.Items.Clear()
gP_CargaCombo(Me.cboXXXXX, lsQuery, "DESCRIPCION", "ID_TUTABLA")
End If
End Sub
=En un módulo:

Imports System.Data.SqlClient
Imports System.IO
Module Global

Public Structure AgregaItem
Private msNombre As String
Private miClave As Integer

Public Sub New(ByVal Nombre As String, ByVal id As Integer)
msNombre = Nombre
miClave = id
End Sub

Public ReadOnly Property Nombre() As String
Get
Return msNombre
End Get
End Property

Public ReadOnly Property Clave() As Integer
Get
Return miClave
End Get
End Property
End Structure

Public Sub gP_CargaCombo(ByVal cboComboBox As ComboBox, ByVal vsQuery As
String, ByVal vsItem As String, ByVal vsItemData As String)
Dim lcnSQL As SqlConnection
Dim lcmSQL As SqlCommand
Dim ldrSQL As SqlDataReader
Dim lArrayList As New ArrayList
Try
lcnSQL = New SqlConnection(msCadenaConexion)
lcnSQL.Open()
lcmSQL = New SqlCommand(vsQuery, lcnSQL)
ldrSQL = lcmSQL.ExecuteReader()
lArrayList.Add(New AgregaItem("", 0))
Do While ldrSQL.Read()
lArrayList.Add(New AgregaItem(ldrSQL.Item(vsItem).ToString(),
CInt(ldrSQL.Item(vsItemData))))
Loop
cboComboBox.DataSource = lArrayList
cboComboBox.DisplayMember = "Nombre"
cboComboBox.ValueMember = "Clave"
cboComboBox.SelectedIndex = -1
ldrSQL.Close()
lcnSQL.Close()
lcmSQL.Dispose()
lcnSQL.Dispose()
Catch e As Exception
MsgBox(e.Message, MsgBoxStyle.Critical, "gP_CargaCombo")
End Try
End Sub

End Module

Espero que te sirva
Un saludo desde Bilbo:
Carlos

"Jesus" escribió en el mensaje
news:0bfb01c51c52$21c82cf0$
Buenasss!!

Como puedo enlazar varios combobox?
Selecciono en un combobox un registro y en el otro
combobox me muestra "una relacion" con ese regisro.
Que el segundo combobox dependa de lo que selecciones en
el primero para mostrar una u otra cosa.

Muchas gracias
Respuesta Responder a este mensaje
#3 J. Carlos Herrrero
27/02/2005 - 20:27 | Informe spam
Hola:
Perdona le falta el filtro del combo, cambia por esto

Private Sub cboListado_SelectedIndexChanged(ByVal sender As Object, ByVal e
As System.EventArgs) Handles cboListado.SelectedIndexChanged
If Me.cboListado.SelectedIndex >= 0 Then
Dim lsQuery As String
lsQuery = "Select ID_TUTABLA, DESCRIPCION from TUTABLA"
lsQuery =lsQuery & " where ID_TUTABLA=" & CType(cboListado.SelectedValue,
String)
lsQuery =lsQuery & " order by DESCRIPCION"
Me.cboXXXXX.Items.Clear()
gP_CargaCombo(Me.cboXXXXX, lsQuery, "DESCRIPCION", "ID_TUTABLA")
End If
End Sub

Espero que te sirva
Un saludo desde Bilbo:
Carlos

"J. Carlos Herrrero" escribió en el mensaje
news:
Hola:
Prueba esto

En un Form:
Private Sub frmXXX_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim lsQuery As String
lsQuery = "Select ID_LISTADO, DESCRIPCION from LIS_LISTADO order by
DESCRIPCION"
gP_CargaCombo(Me.cboListado, lsQuery, "DESCRIPCION", "ID_LISTADO")
End Sub

Private Sub cboListado_SelectedIndexChanged(ByVal sender As Object, ByVal
e As System.EventArgs) Handles cboListado.SelectedIndexChanged
If Me.cboListado.SelectedIndex >= 0 Then
Dim lsQuery As String
lsQuery = "Select ID_TUTABLA, DESCRIPCION from TUTABLA order by
DESCRIPCION"
Me.cboXXXXX.Items.Clear()
gP_CargaCombo(Me.cboXXXXX, lsQuery, "DESCRIPCION", "ID_TUTABLA")
End If
End Sub
=> En un módulo:

Imports System.Data.SqlClient
Imports System.IO
Module Global

Public Structure AgregaItem
Private msNombre As String
Private miClave As Integer

Public Sub New(ByVal Nombre As String, ByVal id As Integer)
msNombre = Nombre
miClave = id
End Sub

Public ReadOnly Property Nombre() As String
Get
Return msNombre
End Get
End Property

Public ReadOnly Property Clave() As Integer
Get
Return miClave
End Get
End Property
End Structure

Public Sub gP_CargaCombo(ByVal cboComboBox As ComboBox, ByVal vsQuery As
String, ByVal vsItem As String, ByVal vsItemData As String)
Dim lcnSQL As SqlConnection
Dim lcmSQL As SqlCommand
Dim ldrSQL As SqlDataReader
Dim lArrayList As New ArrayList
Try
lcnSQL = New SqlConnection(msCadenaConexion)
lcnSQL.Open()
lcmSQL = New SqlCommand(vsQuery, lcnSQL)
ldrSQL = lcmSQL.ExecuteReader()
lArrayList.Add(New AgregaItem("", 0))
Do While ldrSQL.Read()
lArrayList.Add(New AgregaItem(ldrSQL.Item(vsItem).ToString(),
CInt(ldrSQL.Item(vsItemData))))
Loop
cboComboBox.DataSource = lArrayList
cboComboBox.DisplayMember = "Nombre"
cboComboBox.ValueMember = "Clave"
cboComboBox.SelectedIndex = -1
ldrSQL.Close()
lcnSQL.Close()
lcmSQL.Dispose()
lcnSQL.Dispose()
Catch e As Exception
MsgBox(e.Message, MsgBoxStyle.Critical, "gP_CargaCombo")
End Try
End Sub

End Module

Espero que te sirva
Un saludo desde Bilbo:
Carlos

"Jesus" escribió en el mensaje
news:0bfb01c51c52$21c82cf0$
Buenasss!!

Como puedo enlazar varios combobox?
Selecciono en un combobox un registro y en el otro
combobox me muestra "una relacion" con ese regisro.
Que el segundo combobox dependa de lo que selecciones en
el primero para mostrar una u otra cosa.

Muchas gracias




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida