| |||
Tablas de consulta en Access 2000 Hola, mi problema es el siguiente: Tengo dos tablas relacionadas de tipo uno a varios llamada regiones y ciudades. ¿como hago para que en un formulario al escoger a través de un cuadro combinado una región, despliege en otro cuadro combinado las ciuades que pertenecen a esa región? |
| |||
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 |