02/10/2003, 23:30
|
| | Fecha de Ingreso: agosto-2003
Mensajes: 7
Antigüedad: 21 años, 3 meses Puntos: 0 | |
Una forma poco elegante, pero efectiva, sería por ejemplo:
En Access:
Tabla Tb_Regiones
Region_Nombre --> Nombre de la región (Cadena)
Region_Id --> Identificador de la región (Entero Largo)
Tabla Tb_Ciudades
Ciudad_Nombre --> Nombre de la Ciudad (Cadena)
Region_Id --> Identificador de la región (Entero Largo) (de Tabla Tb_regiones)
en el código de VB:
Private Sub LlenaComboRegiones()
'llena el Combo regiones
sSQL = "SELECT * FROM Tb_Regiones
Set RS = New ADODB.Recordset
Set RS = cn.Execute(sSQL)
comboRegiones.Clear
While Not RS.EOF
sRegion=RS.Fields("Region_Nombre") & Space(55) & RS.Fields("Id")
cmbEstacion.AddItem sRegion
RS.MoveNext
Wend
RS.Close
Set RS = Nothing
End Sub
Private sub comboRegiones_Click
Dim inCounter As Integer
Dim inFoundPos As Integer
Dim x As Integer
Const PARSECHAR = " "
sRegion = comboregiones.Text
If Len(sRegion) = 0 Then Exit Sub
'Empezar en el último caracter
inCounter = Len(sRegion)
'Buscar un espacio
inFoundPos = InStrRev(sRegion, PARSECHAR, inCounter)
'Asignar la última parte de la cadena a sRegion
sEstacion = Mid(sRegion, inFoundPos + 1, (Len(sEstacion) - inFoundPos + 1))
LlenaComboCiudades sRegion
End Sub
Private Sub LlenaComboCiudades(sRegion as string)
'llena el Combo ciudades
sSQL = "SELECT * FROM Tb_Ciudades as WHERE Region_Id = '"& sRegion &"'"
Set RS = New ADODB.Recordset
Set RS = cn.Execute(sSQL)
comboCiudades.Clear
While Not RS.EOF
sCiudad=RS.Fields("Ciudad_Nombre")
comboCiudad.AddItem sCiudad
RS.MoveNext
Wend
RS.Close
Set RS = Nothing
End Sub
Espero que les sirva
Saludos |