¿Campos de selección?

Hi, haber estoy segura que el titulo de la pregunta no se entendió, me explico lo que quiero es colocar en un formulario de access 2007 unos campos que listen las opciones correspondientes a la opción que elija con anterioridad, ejemplo para poderme exolicar, un formulario en el que valla a llenar la ciudad y el país de origen de una persona, escribo el nombre el apellido, etc; luego de una lista selecciono el país, en el siguiente campo solo me aparezcan las ciudades de ese país, osea: si elijo COLOMBNIA en el primer campo en la lista del segundo campo solo aparezcan: BOGOTÁ, CALI, ETC; si elijo en el campo país MEXICO en el campo ciudad solo me aparezcan MAZATLAN, CHIAPAS, JALISCO, ETC. Con este ejemplo creo que si se entiende los que necesito, haber debo decir que apenas tengo una semana usando access y nunca lo había usado y aunque hasta ahora me entero que sirve para bases de datos y no se nada de visual basic me estoy defendiendo bien con las tablas y las relaciones que aun me quedan medio chuecas pero funcionan, lo que quiero decir es que espero que se puedo hacer de forma gráfica y con algún asistente de access y eso si es que se puede hacer que si se debe poder hacer solo que yo no se como, así que por favor no me lo expliquen muy difícil.

1 respuesta

Respuesta
1
Vamos a intentar hacerlo lo más sencillo, para ver si me explico bien.
Antes que nada debes tener organizadas tus tablas y las relaciones.
Es decir imagino tendrás (como ejemplo) una tabla para los países llemémosla tbl_pais, que tendría al menos la siguiente estructura:
id_pais, nombre_pais.
Luego otra que se llamara tbl_ciudad y de igual forma seria algo como.
id_ciudad, id_pais, nombre_ciudad.
Y luego tendrías una relación con id_pais entre ambas tablas. Podríamos decir que la relación debería de ser muchos a muchos o infinito a infinito ya que un país tendrá varias ciudades, pero a su vez varios países pueden tener ciudades con el mismo nombre.
Ahora pasamos al formulario. Primero tendrás el combo con los países, vamos llamarlo cbo_paises. Después tendríamos un combo de las ciudades vamos a llamar a este cbo_ciudad.
En este segundo combo podríamos abrir la ventana de código, en el botón "ver código", en la pestaña diseño.
Y agregamos lo siguiente: (lo que esta seguido de comilla simple (') es un comentario)
 Private Sub cbo_paises_AfterUpdate()
<span style="white-space: pre;"> </span>'Aca le indicamos al combo de ciudad que una vez que se seleccione el pais, el va a <span style="white-space: pre;"> </span>'cargar solo las ciudades que correspondan con el id del pais seleccionado.
    Me.cbo_ciudad.RowSource = "SELECT id_ciudad, nombre_ciudad FROM" & _
                               " tbl_ciudad WHERE id_pais = " & Me.cbo_pais
<span style="white-space: pre;"> </span>'Luego validamos que el pais no tenga ninguna ciudad asociada, en ese caso le <span style="white-space: pre;"> </span>'indicamos al combo de ciudad que su cantidad de elementos es 0.
    If Me.cbo_ciudad.ItemData(0) <> "" Then
        Me.cbo_ciudad = Me.cbo_ciudad.ItemData(0)
    Else
        Me.cbo_ciudad = "0"
    End If
End Sub
Podríamos hacerlo sin necesidad de ingresar el código, pero realmente es un código sumamente sencillo y lo ideal es que vallas poco a poco profundizando en el, ya que es una herramienta esencial para sacarle muchísimo provecho no solo a access sino también a todas las herramientas de office.
Si no me he explicado bien, o quieres que lo discutamos más me avisas.
Éxitos.
Me acabo de dar cuenta que cuando pegue el código se fue con basura, aquí esta limpio.
Agregamos lo siguiente: (lo que esta seguido de comilla simple (') es un comentario)
Private Sub cbo_paises_AfterUpdate()
    Me.cbo_ciudad.RowSource = "SELECT id_ciudad, nombre_ciudad FROM" & _
                               " tbl_ciudad WHERE id_pais = " & Me.cbo_pais
    If Me.cbo_ciudad.ItemData(0) <> "" Then
        Me.cbo_ciudad = Me.cbo_ciudad.ItemData(0)
    Else
        Me.cbo_ciudad = "0"
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas