Access - formulario dependiente

 
Vista:

formulario dependiente

Publicado por TON (25 intervenciones) el 21/12/2001 07:23:00
Hola amigos,

En primer lugar, Feliza Navidad y Prospero año nueve y mucha suerte para mañana.

Mi pregunta es la siguiente:

Tengo un formulario con los siguientes controles: un cuadro combinado, un grupo de opciones, un cuadro de lista y un subformulario.

Mi idea es la siguiente:
Del cuadro combinado elijo la tabla de donde han de provenir los datos, luego del grupo de opciones elijo el tipo de datos y en el cuadro de lista me deberian de aparecer los datos de la tabla elegida (del combo) del tipo elegido (del grupo de opciones).

Una vez obtenido estos datos en el cuadro de lista, la siguiente funcion seria que con un doble click lo copiaria en el subformulario (esto creo que lo he conseguido) y por ultimo una funcion que permitiera eliminar un registro (tipo el de elimiar registro de la barra de herramientas)

Bueno pues eso es todo.

Gracias de antemano por leer todo este rollo y espero que me podais hechar una manita.

Saludos
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

formulario dependiente

Publicado por Alejandro (4142 intervenciones) el 19/04/2023 23:06:51
Hola.

Lo que estás buscando se conoce como un formulario dependiente, donde los datos que se muestran en los controles dependen de las selecciones realizadas en otros controles. Aquí hay una posible solución para lograr lo que necesitas:

1. En el evento AfterUpdate del cuadro combinado, utiliza una sentencia SQL para llenar la lista de selección con los datos de la tabla seleccionada y del tipo de datos elegido en el grupo de opciones. Por ejemplo:

1
2
3
4
5
6
Private Sub comboTabla_AfterUpdate()
    Dim strSQL As String
 
    strSQL = "SELECT campo1, campo2 FROM " & comboTabla.Value & " WHERE tipo = '" & grupoOpciones.Value & "'"
    listaDatos.RowSource = strSQL
End Sub

2. En el evento DblClick de la lista de selección, utiliza el método AddNew del subformulario para agregar un nuevo registro y luego copia los datos de los controles del formulario principal al registro recién creado en el subformulario. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub listaDatos_DblClick(Cancel As Integer)
    Dim frmSubform As Form
    Dim rs As DAO.Recordset
 
    Set frmSubform = Me.subform.Form
    Set rs = frmSubform.Recordset
 
    rs.AddNew
    rs!campo1 = Me.listaDatos.Column(0)
    rs!campo2 = Me.listaDatos.Column(1)
    rs.Update
End Sub

3. Para eliminar un registro en el subformulario, simplemente utiliza el botón Eliminar registro de la barra de herramientas estándar.

Espero que esto te ayude a resolver tu problema. ¡Felices fiestas!
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