Pasar datos de TextBox a cuadro_combinado a través de consulta SQL ACCESS Vba

Estoy realizando una aplicación de consulta de códigos postales. Se trata de lo siguiente: La idea es que al ingresar un código postal en un textbox (codigo_postal), realice la consulta a través de un botón y lo que tiene que hacer es llenar los campos de estado, municipio, ciudad, colonia y otros, pero al llegar al llenado del cuadro_combinado(cbo_colonia) solamente obtengo el primer valor (primer colonia del código postal) cuando existen colonias que contienen hasta 24 colonias, lo que necesito es que al hacer la consulta me llene el cuadro combinado con las colonias resultantes de mi código postal.

A continuación dejo el código de mi función:

Private Sub insertar_sepomex_Click()
Dim mySql As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
If codigo_postal.Value Then
mySql = "SELECT Sepomex.municipio, Sepomex.estado, Sepomex.ciudad, Sepomex.colonia, Sepomex.brick_ims, Sepomex.area_metropolitana, Sepomex.Brick_atv FROM Sepomex WHERE codigo_postal = '" + codigo_postal.Value + "';"
Set dbs = CurrentDb
On Error GoTo Err_SinData
Set rst = dbs.OpenRecordset(mySql, dbOpenSnapshot)
'Asignamos el valor al TextBox
Me.municipio.Value = rst.Fields(0).Value
Me.estado.Value = rst.Fields(1).Value
Me.ciudad.Value = rst.Fields(2).Value
Me.colonia.Value = rst.Fields(3).Value
Me.cbo_colonia.DefaultValue = rst.Fields(3).Value
Me.brick_ims.Value = rst.Fields(4).Value
Me.area_metropolitana.Value = rst.Fields(5).Value
Me.brick_atv.Value = rst.Fields(6).Value

End If
'Cerramos el recordset y liberamos memoria
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
Exit_SinData:
Exit Sub
Err_SinData:
MsgBox "Código Postal inexistente, verifique la información."
Resume Exit_SinData
End Sub

1 respuesta

Respuesta
2

Lo que yo haría sería, que no tiene porque servirte pero...

En el evento Después de actualizar del cuadro de texto codigopostal poner

municipio=dlookup("municipio","nombre de la tabla","codigopostal=" & me.codigopostal &"")

Y así los demás.

En el caso del combinado

colonia.rowsource="select colonia from nombretabla where codigopostal=" & me.codigopostal & ""

Suponiendo que código postal sea numérico. Si fuera texto deberías ponerlo como

= '" & me.codigopostal & "'"

Es decir apostrofe comillas & y al final & comillas apostrofe comillas

Y olvídate de los dim y tonterías de esas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas