MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

3 participantes

    [Resolvido]Duplicar dados Do Form + Subform com vba

    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 28/02/2011

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Duplicar dados Do Form + Subform com vba

    Mensagem  MarceloSilva 15/10/2012, 14:36

    Bom dia Pessoal

    Tenho uma dúvida

    Tem como duplicar dados em um form que possui um subform vinculado?

    Achei este exemplo no fórum, porem só replica os dados que estão no form...

    Private Sub btReplica_Click()
    On Error GoTo Err_Dupli_reg_Click
    Call fncSonClick

    MsgBox "O Registro foi duplicado com sucesso!....Sua cópia já pode ser Editada", vbInformation, "Atenção"
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

    DoCmd.GoToRecord , , acLast

    Exit_Dupli_reg_Click:
    Exit Sub

    Err_Dupli_reg_Click:
    MsgBox err.Description
    Resume Exit_Dupli_reg_Click
    End Sub
    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Re: [Resolvido]Duplicar dados Do Form + Subform com vba

    Mensagem  rclenzi 15/10/2012, 19:27

    Eu faria com SQL:
    Código:
    Private Sub Duplicar_Click()
        If Not IsNull(Me!Codigo) Then
            If MsgBox("Confirma a duplicação do registro?", vbQuestion + vbYesNo) = vbYes Then
                Dim CodigoNovoPedido As Long
               
                CurrentDb.Execute "INSERT INTO tabela1 ( Nome ) SELECT Nome FROM tabela1 WHERE Codigo=" & Me!Codigo & ";", dbFailOnError
               
                CodigoNovoPedido = DMax("Codigo", Me.RecordSource)
               
                CurrentDb.Execute "INSERT INTO tabela2 ( Pedido, DescricaoProduto ) SELECT " & CodigoNovoPedido & ", DescricaoProduto FROM tabela2 WHERE pedido=" & Me!Codigo & ";", dbFailOnError
                Me.Requery
            End If
        End If
    End Sub
    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 28/02/2011

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Re: [Resolvido]Duplicar dados Do Form + Subform com vba

    Mensagem  MarceloSilva 15/10/2012, 21:35

    Boa Tarde Reclenzi

    Obrigado pelo retorno.
    Bom....não tenho muita prática em SQL. Tentei adotar no meu projeto mas não deu.

    Estou passando as tabelas a qual possuo. Se possível alocar conforme meu projeto.
    Assim posso intender onde errei.

    tbl_PedidoCompra (Tabela de Formulário)

    CD_PedidoCompra
    ID_CadObra
    DataPedido
    DescricaoPEdido
    ID_CadFornecedor
    ObsPedido
    StatusPedido
    SolicitadoPor



    tbl_ItemCompra (Tabela de Subformulário)

    CD_ItemCompra
    ID_PedidoCompra
    ID_CadProduto
    QuantidadeItemCompra
    ValorItemCompra
    Entregue


    avatar
    rclenzi
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 26
    Registrado : 10/10/2012

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Re: [Resolvido]Duplicar dados Do Form + Subform com vba

    Mensagem  rclenzi 15/10/2012, 22:41

    Não testei, mas acho q vai funcionar Very Happy

    Código:

        Private Sub Duplicar_Click()
            If Not IsNull(Me!CD_PedidoCompra) Then
                If MsgBox("Confirma a duplicação do registro?", vbQuestion + vbYesNo) = vbYes Then
                    Dim CodigoNovoPedido As Long
                 
                    CurrentDb.Execute "INSERT INTO tbl_PedidoCompra ( ID_CadObra, DataPedido, DescricaoPEdido, ID_CadFornecedor, ObsPedido, StatusPedido, SolicitadoPor ) SELECT ID_CadObra, DataPedido, DescricaoPEdido, ID_CadFornecedor, ObsPedido, StatusPedido, SolicitadoPor FROM tabela1 WHERE CD_PedidoCompra=" & Me!CD_PedidoCompra & ";", dbFailOnError
                 
                    CodigoNovoPedido = DMax("CD_PedidoCompra", Me.RecordSource)
                 
                    CurrentDb.Execute "INSERT INTO tbl_ItemCompra ( ID_PedidoCompra, ID_CadProduto, QuantidadeItemCompra, ValorItemCompra, Entregue ) SELECT " & CodigoNovoPedido & ", ID_CadProduto, QuantidadeItemCompra, ValorItemCompra, Entregue FROM tbl_ItemCompra WHERE ID_PedidoCompra=" & Me!CD_PedidoCompra & ";", dbFailOnError
                    Me.Requery
                End If
            End If
        End Sub

    Breve explicação como funciona o esquema:
    No primeiro insert, irá duplicar o registro mestre (Estou supondo que seu campo Chave primária na tabela tbl_PedidoCompra seja auto numeração, se não for, vai dar erro). Depois ele pesquisa qual foi o código que o insert gerou e coloca na variavel CodigoNovoPedido. No segundo insert, ele duplica o registro dos itens, apontando pro campo que tem a chave extrangeira (ID_PedidoCompra) qual é o código do registro mestre.

    erismarlima gosta desta mensagem

    MarceloSilva
    MarceloSilva
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 156
    Registrado : 28/02/2011

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Re: [Resolvido]Duplicar dados Do Form + Subform com vba

    Mensagem  MarceloSilva 16/10/2012, 12:47

    Bom dia Rclenzi

    Deu na medida seu código
    Funcionou perfeitamente......

    boa dica....

    Obrigado pela força...

    Encerro aqui o tópico.......

    at.
    avatar
    erismarlima
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 26/01/2015

    [Resolvido]Duplicar dados Do Form + Subform com vba Empty Re: [Resolvido]Duplicar dados Do Form + Subform com vba

    Mensagem  erismarlima 16/8/2021, 20:36

    Boa tarde!
    Estou com um pequeno problema, implementei este codigo, funcionou perfeitamente a duplicação dos dados. o meu problema é que, mesmo com "me.requerey" no final não atualiza os campos nos formularios com o registro recem criado, pelo contrário vai sempre pra o primeiro registro.

      Data/hora atual: 25/9/2022, 16:23