Campo de lista

Fíjate que tengo una base de datos en Access y con un formulario que tiene dos campo que son listas, uno es digamos Estados y el otro ciudades, necesito que dependiendo de la selección de los Estados o Cabeceraz el campo de ciudades salgan solo las del Estado que elegí en el campo anterior, me puedes ayudar con un pequeño código, no se programar
Tengo las tablas Estados y tabla ciudades relacionas de Estados a Cidades esta a su vez tiene relacionada otra tabla dependiente que es pueblos.
3

3 respuestas

Respuesta
1
Primero que todo, te recomiendo que no trabajes con una lista sino con un cuadro combinado (está a la izquierda del de lista en la barra de herramientas).
Voy a suponer que la relación es el campo codestado, suponiendo que sea el código del estado. Entonces el código debería ser el siguiente:
SELECT Codigo.ciudad, Nombre.ciudad FROM Ciudad WHERE codestado=[nombre_lista_estado];
Ten en cuenta que está llamando dos campos, ya que es un cuadro de lista, aunque solamente guardará uno de los dos. Para que lo que quieres hacer te funcione, en las propiedades de cada campo debes ir a Datos, luego Origen del Control y borrar el campo que se encuentra, y crear otros controles preferiblemente ocultos que tomen el valor de las listas DESPUÉS de ser actualizados; el código para actualizar esos campos en VBA es el siguiente:
Function Macro2()
On Error GoTo Macro2_Err
With CodeContextObject
.[campo_que_almacenara_el_valor] = .[lista_o_campo_combinado]
End With
Macro2_Exit:
Exit Function
Macro2_Err:
MsgBox Error$
Resume Macro2_Exit
End Function
Espero que te sirva de algo. Y no te olvides de dar tu calificación.
Respuesta
1
Para actualizar un control con base en lo seleccionado en otro control.
1. La tabla en la que se basa el segundo control debe tener un campo relacionado con la tabla en la que se basa el primer control. Por ejemplo la tabla Ciudades debería tener un campo llamado Id_Estado que identifique a cual estado pertenece.
2. En el formulario, el primer control contiene los estado. Y al seleccionar un estado tiene un código similar a este:
----------
Private Sub Estado_AfterUpdate()
On Error GoTo Err_Actualizar_Click
Me.Ciudad.Requery
Exit_Actualizar_Click:
Exit Sub
Err_Actualizar_Click:
MsgBox Err.Description
Resume Exit_Actualizar_Click
End Sub
----------------
Este código se copia en la propiedad de Evento "Después de actualizar" del control mencionado. Es te primer control se llama Estado.
3. El segundo control se llama (por ejemplo) Ciudad, y se basa en una consulta que tiene el campo Id_Ciudad, el campo Ciudad (texto) y el campo Id_Estado.
Entonces en el diseño de esta consulta y debajo del campo Id_Estado, en la línea de Criterios escribe un código como este:
[Forms]![Form1]![Estado]
El nombre Form1 debes sustituirlo por el nombre de tu formulario.
Estimado experto, muchas gracias por tu valiosa colaboración y tiempo que has dedicado a ampliar mis conocimientos, gracias a Dios que hay personas como tu que no son egoístas y comparten lo que saben
Respuesta
Aquí tienes unos ejemplos de Combos relacionados para Access:
http://usuarios.lycos.es/jbchea/Combos.zip
Si no entiendes algo avisa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas