Access - ayuda por favor

 
Vista:

ayuda por favor

Publicado por azrael (6 intervenciones) el 11/10/2005 23:13:01
estoy haciendo un base de datos de pedidos.

tengo un form de cabecera de pedidos que incluye (nº pedido, cliente y fecha de entrega) y dentro de ese form un subform que son las lineas de ese pedido. lo que quiero es que cuando llegue a la linea 20 me genere el siguiente pedido pero que me conserve toda la cabecera.

gracias por anticipado.
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

Generar un nuevo pedido al alcanzar la línea 20 en un subformulario

Publicado por Alejandro (4142 intervenciones) el 12/06/2023 18:43:10
Para lograr generar automáticamente un nuevo pedido al alcanzar la línea 20 en un subformulario dentro del formulario de cabecera de pedidos, puedes seguir estos pasos:

1. Abre el formulario de cabecera de pedidos en modo de diseño.

2. Asegúrate de que tienes un control de subformulario en el formulario de cabecera para mostrar las líneas del pedido. Si no tienes uno, puedes insertarlo desde la pestaña "Diseño" y seleccionar "Subformulario/Subinforme".

3. Haz doble clic en el control de subformulario para abrir el subformulario en modo de diseño.

4. En el subformulario, ve al evento "Al perder el enfoque" de la última línea (por ejemplo, el control de texto que muestra el número de línea) y agrega el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub UltimaLinea_LostFocus()
    ' Verificar si se alcanzó la línea 20
    If Me.UltimaLinea.Value = 20 Then
        ' Crear un nuevo pedido con la misma cabecera
        DoCmd.GoToRecord , , acNewRec
        Me.Cliente.Value = Forms![FormularioCabeceraPedidos]!Cliente.Value
        Me.FechaEntrega.Value = Forms![FormularioCabeceraPedidos]!FechaEntrega.Value
        ' Ajusta los nombres de los controles según los nombres reales en tu formulario
 
        ' Actualizar el número de línea en el nuevo pedido
        Me.UltimaLinea.Value = 1
    End If
End Sub

Asegúrate de reemplazar "UltimaLinea" con el nombre real del control que muestra el número de línea en tu subformulario y "FormularioCabeceraPedidos" con el nombre real del formulario de cabecera de pedidos.

5. Guarda y cierra el subformulario.

6. Guarda y cierra el formulario de cabecera de pedidos.

Con este código, cuando se pierda el enfoque en la línea 20 del subformulario, se creará automáticamente un nuevo pedido con la misma cabecera (número de pedido, cliente y fecha de entrega). El número de línea se reiniciará a 1 en el nuevo pedido.

Recuerda ajustar los nombres de los controles y los formularios según tus necesidades en el código VBA.

Espero que esta solución sea útil para ti.
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