Visual Basic - Datacombos relacionados

Life is soft - evento anual de software empresarial
 
Vista:

Datacombos relacionados

Publicado por Optimus_Primitivus (4 intervenciones) el 25/07/2007 19:53:54
Buenas...

Mi pregunta es como puedo relacionar dos datacombos, es decir, como hago que al elegir una opcion de un datacombo, en el otro datacombio solo me aparezca la informacion que se relacione al primer datacombo.

Tengo una base de datos como sigue:

Id_Estado
Estado
Id_Estado
Id_Municipio
Municipio

Un ejemplo de lo que necesito es lo siguiente: que si oprimo en el primer datacombo algun estado, en el siguiente datacombo,solo me aparezcan los municipios que correspondan a este estado.

Espero me puedan ayudar!!!!!!!!!!!!!!!!
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:Datacombos relacionados

Publicado por Yendri (14 intervenciones) el 26/07/2007 19:22:58
Creo que no va ser posible, ya que los DataCombos Solo pueden tener un solo campo, en su lista, e inmagino que en l DataCombo de Estados solo mostroras el campo "Estado" y no "Id_Estado" que es el campo con el que relacionas en la tabla de municipios, Yo usaria el ComboBox, siempre y cuando el Campo "Id_Estado" sea de tipo entero. Aqui te pongo un ejemplo con dos ComboBox

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strQuery As String
Const strConexion = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=EnterpriseAdminDB;Data Source=SERVIDOR"

Private Sub cmbEstados_Click()
Screen.MousePointer = 11
Set cnn = Nothing
Set rst = Nothing
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
strQuery = "SELECT Estado, Ciudad, Descrip FROM SACIUDAD WHERE " & _
"Estado=" & CInt(cmbEstados.ItemData(cmbEstados.ListIndex)) & " ORDER BY Descrip ASC"
cmbCiudades.Clear
cnn.Open strConexion
With rst
.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText
If .RecordCount <> 0 Then
Do While Not .EOF
cmbCiudades.AddItem Trim(!Descrip)
cmbCiudades.ItemData(cmbCiudades.NewIndex) = CInt(!Ciudad)
.MoveNext
Loop
End If
.Close
End With
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Screen.MousePointer = 1
End Sub

Private Sub Form_Load()
Screen.MousePointer = 11
Set cnn = Nothing
Set rst = Nothing
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset
strQuery = "SELECT Estado, Descrip FROM SAESTADO ORDER BY Descrip ASC"
cmbEstados.Clear
cnn.Open strConexion
With rst
.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText
If .RecordCount <> 0 Then
Do While Not .EOF
cmbEstados.AddItem Trim(!Descrip)
cmbEstados.ItemData(cmbEstados.NewIndex) = CInt(!Estado)
.MoveNext
Loop
End If
.Close
End With
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Screen.MousePointer = 1
End Sub
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