Copiar varios registros de un subformulario de access a otro

Tengo un formulario Pedidos y otro Remitos, ambos con un subformulario de detalle. Relacionados por el campo IdRemito.

Normalmente se carga el pedido y ahora a veces se hace un remito. La idea es hacer que se genere el remito automaticamente ya que todos los campos del Remito están en el formulario Pedidos. Lo que hice fue que luego de cargar el Nro. De Remito, hago doble click sobre ese campo me abre un nuevo Remito y carga todos los datos con éste código.
    DoCmd. OpenForm stDocName,,,, acFormAdd
    [Forms]![VfrmRemitos]![cdrCliente] = [Forms]![frmPedidos]![cdrCliente]
    [Forms]![VfrmRemitos]![FechaRem] = Me.FechaEnt
(Siguen varios campos mas del formulario)

   [Forms]![VfrmRemitos].VsubfrmRemitos.SetFocus
    DoCmd.GoToRecord , , acNewRec
    [Forms]![VfrmRemitos].VsubfrmRemitos![IdRemito] = [Forms]![VfrmRemitos]![IdRemito]
    [Forms]![VfrmRemitos].VsubfrmRemitos![cdrArticulo] = [Forms]![frmPedidos].subfrmPedidos![cdrArticulo]
    [Forms]![VfrmRemitos].VsubfrmRemitos![Cantidad] = [Forms]![frmPedidos].subfrmPedidos![Cantidad]
Siguen varios campos más del subformulario...

Este código me funciona eficazmente cuando hay un solo registro en el subformulario Pedidos, pero cuando hay varios registros he probado varios códigos y no tuve éxito para que los agregue.

Supongo que tengo que generar un código que recorra todos los registros del subformulario Pedidos y los copie en el otro y necesitaría ayuda con eso.

1 respuesta

Respuesta
1

Lo pude resolver mirando otras respuestas de un problema parecido

Use

   Dim stLinkCriteria As String
    Dim stDocName As String
    Dim Reg As DAO.Recordset
    Set Reg = Me.Recordset
  

stDocName = "VfrmRemitos"
If Me.NroRemito = "Ninguno" Then
    Me.NroRemito = "Ninguno"
Else
    Do While Not Reg.EOF
    DoCmd.OpenForm stDocName, , , , acFormAdd
    [Forms]![VfrmRemitos]![cdrCliente] = [Forms]![frmPedidos]![cdrCliente]
    [Forms]![VfrmRemitos]![FechaRem] = Me.FechaEnt
    [Forms]![VfrmRemitos]![NroRemito] = Me.NroRemito
    [Forms]![VfrmRemitos]![LugarEnt] = [Forms]![frmPedidos]![LugarEnt]
    [Forms]![VfrmRemitos]![LocalidadEnt] = [Forms]![frmPedidos]![LocalidadEnt]
    [Forms]![VfrmRemitos].VsubfrmRemitos.SetFocus
    DoCmd.GoToRecord , , acNewRec
    [Forms]![VfrmRemitos].VsubfrmRemitos![IdRemito] = [Forms]![VfrmRemitos]![IdRemito]
    [Forms]![VfrmRemitos].VsubfrmRemitos![cdrArticulo] = [Forms]![frmPedidos].subfrmPedidos![cdrArticulo]
    [Forms]![VfrmRemitos].VsubfrmRemitos![Cantidad] = [Forms]![frmPedidos].subfrmPedidos![Cantidad]

Siguen varios campos más........
    Reg.MoveNext
    Loop
End If

Y ahí me abre el remito y me carga todos los registros si el campo es distinto de "Ninguno".

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas