Access - sobre formulario

 
Vista:

sobre formulario

Publicado por javier (1 intervención) el 05/01/2006 17:05:38
hola, necesito hacer que sobre un formulario donde se seleccionan de una lista predeterminada haga que en otro campo muestre otra lista dependiendo de lo anteriormente seleccionado.
POR EJEMPLO:
campo1:a b c
campo2: opcion1 (a), opcion2 (b), opcion3 (c),opcion4 (c), opcion5 (a), opcion6 (c), opcion7 (b)

si elijo "a" en el campo 1 aparezcan solo las opciones "opcion1" "opcion5" en campo2

y otra cosa, como hago para que en el mismo formulario atravez de una clave llene los campos a partir de otra base de datos externa
EJEMPLO: si pongo el dni 35666666 me almacene su correspondiente nombre etc automaticamente

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Dependencia de lista y llenado automático de campos mediante una clave

Publicado por Alejandro (4142 intervenciones) el 15/06/2023 22:08:22
Para lograr que en un formulario se muestre una lista dependiendo de la selección anterior, puedes utilizar la función "AfterUpdate" del campo1 para filtrar la lista del campo2. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub campo1_AfterUpdate()
    Me.campo2.RowSource = ""
 
    Select Case Me.campo1.Value
        Case "a"
            Me.campo2.RowSource = "SELECT opcion, descripcion FROM tabla WHERE opcion IN ('opcion1', 'opcion5')"
        Case "b"
            Me.campo2.RowSource = "SELECT opcion, descripcion FROM tabla WHERE opcion IN ('opcion2', 'opcion7')"
        Case "c"
            Me.campo2.RowSource = "SELECT opcion, descripcion FROM tabla WHERE opcion IN ('opcion3', 'opcion4', 'opcion6')"
    End Select
 
    Me.campo2.Requery
End Sub

Asegúrate de reemplazar "campo1" y "campo2" con los nombres reales de tus campos, y "tabla" con el nombre de tu tabla que contiene las opciones.

En cuanto a llenar los campos automáticamente a partir de una clave en otro formulario, puedes utilizar el evento "AfterUpdate" del campo de la clave para buscar los datos correspondientes en la otra base de datos y llenar los campos. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub clave_AfterUpdate()
    Dim db As Database
    Dim rs As Recordset
 
    Set db = OpenDatabase("RutaDeLaBaseDeDatosExterna")
    Set rs = db.OpenRecordset("SELECT nombre, apellido FROM tabla WHERE dni = '" & Me.clave.Value & "'")
 
    If Not rs.EOF Then
        Me.campoNombre.Value = rs("nombre")
        Me.campoApellido.Value = rs("apellido")
    End If
 
    rs.Close
    db.Close
 
    Set rs = Nothing
    Set db = Nothing
End Sub

Asegúrate de reemplazar "clave", "campoNombre", "campoApellido", "RutaDeLaBaseDeDatosExterna" y "tabla" con los nombres reales de tus campos y la ubicación de la base de datos externa.

Espero que esta solución te sea útil para lograr la dependencia de listas y el llenado automático de campos en Access.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar