Access - Seleccion de registros multiples

 
Vista:

Seleccion de registros multiples

Publicado por Guillermo (1 intervención) el 24/04/2002 01:33:00
Tengo un formulario con un subformulario de pedidos, quisiera poder crear otro subformulario seleccionando varios registros . Es decir, que pudiera seleccionar varios registros del un subformulario pedidos para crear una orden de compra. En "pedidos" guardo los registros que me piden que compre y yo quiero generar la orden de compra a partir de esos registros. Alguien me puede ayudar?

Muchas gracias.
Salu2 desde Mexico.
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

Seleccion de registros multiples

Publicado por Alejandro (4142 intervenciones) el 21/04/2023 01:23:44
Para seleccionar varios registros de un subformulario y usarlos para crear una orden de compra en otro subformulario, puedes utilizar una tabla temporal para almacenar los registros seleccionados.

Aquí te presento una posible solución:

1. Crea una tabla temporal con las mismas columnas que tu subformulario de pedidos, esta tabla se usará para almacenar temporalmente los registros seleccionados.
2. Agrega un cuadro de lista múltiple en el subformulario de pedidos.
3. En el evento Después de actualizar del cuadro de lista múltiple, agrega código VBA para agregar los registros seleccionados a la tabla temporal. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub lstPedidos_AfterUpdate()
    Dim db As DAO.Database
    Dim rsPedidos As DAO.Recordset
    Dim rsSeleccionados As DAO.Recordset
 
    Set db = CurrentDb
    Set rsPedidos = Me.RecordsetClone
    Set rsSeleccionados = db.OpenRecordset("NombreTablaTemporal")
 
    rsPedidos.FindFirst "IDPedido = " & Me.lstPedidos.Value
 
    Do Until rsPedidos.NoMatch
        rsSeleccionados.AddNew
        rsSeleccionados("Campo1") = rsPedidos("Campo1")
        rsSeleccionados("Campo2") = rsPedidos("Campo2")
        ' Agrega los campos necesarios
        rsSeleccionados.Update
 
        rsPedidos.FindNext "IDPedido = " & Me.lstPedidos.Value
    Loop
 
    rsPedidos.Close
    rsSeleccionados.Close
    Set rsPedidos = Nothing
    Set rsSeleccionados = Nothing
    Set db = Nothing
End Sub

4. En el subformulario de la orden de compra, muestra los datos de la tabla temporal en un cuadro de lista o en un subformulario.

Ten en cuenta que esto es solo una idea básica y tendrás que adaptarla a tus necesidades específicas. Además, deberás manejar la eliminación de registros de la tabla temporal cuando la orden de compra se cree o se cancele.
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