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

    Duplicar registro (mesmo)

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar registro (mesmo)

    Mensagem  vileman 4/9/2013, 02:26

    Amigos do Fórum, cumprimentos a todos, em especial ao Sr. Vieira, que já fazia um bom tempo que não o via por aqui, pois já faz um bom tempo que não acesso este site, mas estou de volta com a seguinte questão: Fiz buscas neste Fórum a respeito de duplicidade de registros, no entanto, o que encontrei foi exatamente o oposto que preciso, ou seja, a maioria dos tópicos os usuários pedem para evitar ou excluir os registros duplicados, o que preciso é exatamente o contrário, então seja, duplicar um registro inserindo-o na mesma tabela.
    Explico: usei os comandos: (Uso a versão Access 2003)

    Private Sub DuplicaIndicador_Click()
       Dim ntram
       Beep
       ntram = MsgBox("ATENÇÃO: Usar exclusivament se o INDICADOR desejar fazer mudança de Nível!" & vbCr & "Confirma Mudança de Nível ?", vbQuestion + vbYesNo, "Sistema VD")

    If ntram = 6 Then     'SE RESPOSTA FOR "SIM"
    On Error GoTo Err_DuplicaIndicador_Click
      DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
      DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
      DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70
       Me!StatusAtual = 4                      
       Me!IDNivel = Null                        
      Me!ValNivel = Null                      
       Me!ComNivel = Null                      
       Me!IDMaster = Null                      
       Me!NomeMaster = Null                    
       Me!NivelMaster = Null                    
      Me!BoletoDTEmissao = Null                
      Me!BoletoDTEntrega = Null                
      Me!BoletoEntrega = Null                  
      Me!BoletoDTPagto = Null                  
      Me.IDMaster.SetFocus                    
    Exit_DuplicaIndicador_Click:
       Exit Sub

    Err_DuplicaIndicador_Click:
       MsgBox Err.Description
       Resume Exit_DuplicaIndicador_Click
    End If
    End Sub

    A rotina acima estava funcionando perfeitamente, isto é, quando eu posicionava em determinado registro no formulário e clicava no Botão "Duplica Indicador" como acima e confirmava sua duplicidade, no entanto, esta semana quando fui usar e cliquei no botão em questão apareceu a seguinte mensagem: "Os registros que o Sistema VD não pôde colar foram inseridos em uma nova tabela chamada 'erros ao colar'. Na janela 'Banco de Dados', abra a nova tabela para ver os registros não colados. Após corrigir os problemas que resultaram nos erros de colagem, copie e cole os registros da nova tabela". E não inclui este novo registro na tabela. Abri a tabela "Erros ao colar", mas não tem como identificar o erro, pois até então funcionava perfeitamente bem, bastava posicionar em determinado registro do Formulário, clicar no Botão e duplicava o registro sem problemas, mas agora apresenta o erro já mencionado. Já tentei refazer várias vezes, mas continua o mesmo erro, fiz depuração e compilação, revi os demais comandos do formulário em questão, mas não funciona como antes.
    Então, gostaria de saber se existe outra maneira de fazer a duplicação de um determinado registro quando posicionar o mesmo no formulário para criar um outro novo registro, repetindo todas suas informações, exceto as que estão como "null" nos comandos acima no novo registro que foi duplicado. Ou se existe algum erro nos comandos acima e então fazer a correção. Informo que o Formulário não é desacoplado à tabela.

    Abraços a todos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Alexandre Neves 4/9/2013, 08:09

    Bom dia,
    Currentdb.execute "INSERT INTO Tabela (CampoA,CampoB,...) SELECT * FROM Tabela WHERE Codigo=" & CampoCodigoNoFormulario


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Convidado
    Convidado


    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Convidado 4/9/2013, 11:50

    Bom dia a todos,

    Só um pitaco Alexandre.

    Algum tempo atrás tive um problema parecido com esse e ao analisar o problema estava no relacionamento entre as tabelas (tratava-se de um backup onde faltava inserir alguns registros em certa tabela).

    Verifica as tuas tabelas (se for o caso).

    Nivaldo.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar registro (mesmo)

    Mensagem  vileman 5/9/2013, 01:27

    Boa noite, Nivaldo

    Para a duplicação do registro atual na tabela em questão não necessita de relacionamento com outra tabela, pois o registro é duplicado na mesma tabela em questão, mesmo assim agradeço o interesse, e fique a vontade para contribuir.

    Boa noite Alexandre, ficou da seguinte forma, após seguir orientação sua:

    Private Sub MudaNivel_Click()
       Dim ntram
       Beep
       ntram = MsgBox("ATENÇÃO: Usar exclusivamente se o INDICADOR desejar fazer mudança de Nível!" & vbCr & "Confirma Mudança de Nível ?", vbQuestion + vbYesNo, "Sistema VD")

       If ntram = 6 Then     'SE RESPOSTA FOR "SIM"
       On Error GoTo Err_MudaNivel_Click
       CurrentDb.Execute "INSERT INTO T15_Indicadores (TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, DataNascimento, IDMaster, NomeMaster, ComMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TitularConta, CPFTitular, CNPJTitular, RGTitular, RGTitular) SELECT * FROM T15_Indicadores WHERE Codigo=" & CodIndicador
    Exit_MudaNivel_Click:
       Exit Sub

    Err_MudaNivel_Click:
       MsgBox Err.Description
       Resume Exit_MudaNivel_Click
    End If
    End Sub

    Apareceu a mensagem de erro: "Parâmetros insuficientes. Eram esperados 1."

    Informo que:
    T15_Indicadores = Tabela em questão
    Campos que desejo duplicar para novo registro na Tabela = TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, DataNascimento, IDMaster, NomeMaster, ComMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TitularConta, CPFTitular, CNPJTitular, RGTitular, RGTitular)
    Campo de Autonumeração = CodIndicador (conforme meu entendimento)

    Também preciso que:
    1) Quando duplique esse novo Registro na Tabela, alguns campos no mesmo já apareçam preenchidos automaticamente, quais sejam:
    DataCadastro = Date (data do dia)
    TipoAdesao = 5
    StatusAtual = 4
    StatusEntrega = 1
    MudancaNivel = "N"

    2) Atualize o campo "MudancaNivel" do registro anterior para "S"

    Esclarecimento: Após a duplicação do registro, o registro anterior permanece na tabela, ou seja, o Indicador fica com 2 cadastros na Tabela, a diferença é que o novo cadastro está com um nível superior ao anterior, porisso preciso fazer a duplicação de alguns campos, e atualizar outros automaticamente quando da duplicação para a partir de então fazer a manutenção manual de acordo com o movimento do cliente indicador.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Alexandre Neves 5/9/2013, 18:48

    Boa tarde,
    Currentdb.execute "UPDATE T15_Indicadores SET MudancaNivel='S' WHERE Codigo=" & CodIndicador
    CurrentDb.Execute "INSERT INTO T15_Indicadores (TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, DataNascimento, IDMaster, NomeMaster, ComMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TitularConta, CPFTitular, CNPJTitular, RGTitular, RGTitular) SELECT TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, DataNascimento, IDMaster, NomeMaster, ComMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TitularConta, CPFTitular, CNPJTitular, RGTitular, RGTitular FROM T15_Indicadores WHERE Codigo=" & CodIndicador


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar Registro (mesmo)

    Mensagem  vileman 6/9/2013, 00:23

    Boa noite, Alexandre,

    Fiz conforme seu último post, mas continua com a mesma mensagem: "Parâmetros insuficientes. Eram esperados 1." e não acrescenta nenhum registro à Tabela.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Alexandre Neves 6/9/2013, 17:37

    Boa tarde,
    Se disponibilizar a bd com a situação


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar Registro (mesmo)

    Mensagem  vileman 6/9/2013, 18:17

    Boa tarde, Alexandre,

    Irei providenciar e coloco aqui no site, favor aguarde... Obrigado.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar Registro (mesmo)

    Mensagem  vileman 8/9/2013, 21:56

    Caro Alexandre, segue a BD em anexo.

    PS: Anexei um arquivo com 1994 Kb, mas não consigo visualizá-lo nessa mensagem, consegue ver?


    Última edição por vileman em 8/9/2013, 22:01, editado 1 vez(es) (Motivo da edição : Anexei um arquivo com 1994 Kb.)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Alexandre Neves 8/9/2013, 22:48

    Boa noite,
    Não veio o anexo
    Coloque num dos formatos aceites (3g2, 3gp, bmp, doc, docm, docx, gif, jpg, m4a, m4v, mov, mp3, mp4, mpg, pdf, png, pps, ppt, pptm, pptx, swf, tif, txt, wma, wmv, xls, xlsb, xlsm, xlsx, zip)
    Pode, em alternativa, colocar num sítio público e disponibilizar o endereço


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar Registro (mesmo)

    Mensagem  vileman 9/9/2013, 01:04

    Boa noite, Alexandre

    Havia colocado em formato .zip no tamanho de 1994 Kb. Vou tentar novamente se eu não conseguir visualizar, vou tentar colocar pelo Dropbox.

    Consegui visualizar dessa vez, então fico aguardando.
    Anexos
    Duplicar registro (mesmo) AttachmentVileman.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.9 Mb) Baixado 119 vez(es)


    Última edição por vileman em 9/9/2013, 01:06, editado 1 vez(es) (Motivo da edição : Consegui visualizar dessa vez.)
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar registro (mesmo)

    Mensagem  vileman 22/9/2013, 00:19

    Olá Alexandre, e a todos que desejarem contribuir, fiquem a vontade!

    Resolvi parcialmente essa minha questão, ou seja, duplicar o registro atual para um novo registro com alguns dos campos escolhidos da seguinte forma:

    PS: Os créditos da rotina abaixo são do usuário deste site: rclenzi, em resposta a um tópico do usuário Marcelo Silva: "Duplicar Dados do Form + SubForm com vba", fiz apenas minhas adaptações.

    Private Sub DuplicaRegistroAtual_Click()
           If Not IsNull(Me!CodIndicador) Then
              If MsgBox("ATENÇÃO: Usar exclusivamente caso o Indicador tenha feito ReCompra com Valor de um Nível superior ao já existente!" & vbCr & "ATENÇÃO: Atualize o campo IDNivel no Cadastro do Indicador, caso confirme esta Operação!!" & vbCr & "Confirma a operação de ATUALIZAÇÃO DE NÍVEL ?", vbQuestion + vbYesNo) = vbYes Then
                 Dim CodigoNovoPedido As Long
                 CurrentDb.Execute "INSERT INTO T15_Indicadores ( NomeIndicador, TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, SexoPessoa, DataNascimento, IDMaster, NomeMaster, NivelMaster, IDProdutoMaster, ValNivelMaster, ComMasterA, ComMasterB, ComMasterC, LimiteNivelMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TemConta, TitularConta, IDBanco, ContaTipo, Agencia, ContaNº, CPFTitular, CNPJTitular, RGTitular ) SELECT NomeIndicador, TipoCliente, Status, CNPJ_CPF, InscEstadual, InscMunicipal, SexoPessoa, DataNascimento, IDMaster, NomeMaster, NivelMaster, IDProdutoMaster, ValNivelMaster, ComMasterA, ComMasterB, ComMasterC, LimiteNivelMaster, CEP, Endereco, Complemento, Bairro, Cidade, UF, Fone1, Fone2, Email1, Email2, TemConta, TitularConta, IDBanco, ContaTipo, Agencia, ContaNº, CPFTitular, CNPJTitular, RGTitular FROM T15_Indicadores WHERE CodIndicador=" & Me!CodIndicador & ";", dbFailOnError
                 CodigoNovoPedido = DMax("CodIndicador", Me.RecordSource)
                 Me.Requery
                 DoCmd.GoToRecord , , acLast  'Posiciona no último Registro
                 Me!StatusAtual = 2                 'Atualiza para 2 (Adesão paga X Recompra)
                 Me!DataStatus = Date              'Atualiza para a Data do dia atual
                 Me!TipoAdesao = 5                  'Atualiza Código para Indicador: Novo Nível
                 Me.ComFoiPaga = 2                 'Atualiza para 2 (Comissão Não foi paga)
                 Me.IDNivel.SetFocus                'Posiciona para digitar novo Nível já pago na Recompra
              End If
           End If
    End Sub

    Ficou faltando 02 pendências:

    1) Duplicar o campo 'NumIndicador', pois o mesmo é tipo número e segue uma sequência numérica na tabela, diferente do campo 'CodIndicador' que é de Autonumeração, isto é, quando usar a rotina acima, preciso que no novo registro seja continuada essa numeração. Exemplo: Suponhamos que o último nº do campo 'NumIndicador' seja 00001029, posiciono no registro com o 'NumIndicador' igual a 00001010' para fazer sua duplicação, então ao clicar no botão acima, além de duplicar os campos da rotina acima, o campo 'NumIndicador' desse novo registro ficaria como 00001030, ou seja, duplica o registro e ao mesmo tempo numera na sequência do último número desse campo em questão. Informo que esse campo tem como valor padrão no formulário o comando: =SeImed(DContar("[NumIndicador]";"T15_Indicadores")=0;1;DMáx("[NumIndicador]";"T15_Indicadores")+1).
    Que serve para a inserção e numeração normal dos registros, ou seja, sempre adiciona mais 1 ao último registro da tabela, mas quando faço a rotina da duplicação, não é feita essa sequência, pois fica o campo em branco, e os demais são duplicados, conforme a rotina acima.

    2) No registro que vai ser duplicado tem o campo 'AtualizaNivel' igual a 'N', então quando clico para fazer a duplicação, preciso atualizar esse campo no registro que está sendo duplicado para o campo "AtualizaNivel' igual a 'S'. Fiz algumas tentativas, usando o comando UPDATE, mas não funcionou:
    CurrentDb.Execute "UPDATE T15_Indicadores SET MudaNivelKVD='S' WHERE Codigo=" & CodIndicador
    Seguindo o exemplo do item 1: O campo 'AtualizaNivel' de número 00001010 no campo 'NumIndicador' ficaria como 'S', e o registro duplicado nesse mesmo campo ficaria como 'N' (Valor padrão).
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar registro (mesmo)

    Mensagem  vileman 6/10/2013, 00:57

    Resolvi a minha pendência nº 1, agora falta apenas a pendência nº 2:

    2) No registro que vai ser duplicado tem o campo 'AtualizaNivel' igual a 'N', então quando clico para fazer a duplicação, preciso atualizar esse campo no registro que está sendo duplicado para o campo "AtualizaNivel' igual a 'S'. Fiz algumas tentativas, usando o comando UPDATE, mas não funcionou:
    CurrentDb.Execute "UPDATE T15_Indicadores SET MudaNivelKVD='S' WHERE Codigo=" & CodIndicador
    Seguindo o exemplo do item 1: O campo 'AtualizaNivel' de número 00001010 no campo 'NumIndicador' ficaria como 'S', e o registro duplicado nesse mesmo campo ficaria como 'N' (Valor padrão).

    Fico no aguardo da ajuda de quem se dispuser.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Duplicar registro (mesmo) Empty Duplicar registro (mesmo)

    Mensagem  vileman 13/10/2013, 17:26

    Up
    avatar
    andresoares
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 31
    Registrado : 04/11/2013

    Duplicar registro (mesmo) Empty Possuo um problema similar. alguém pode me ajudar?

    Mensagem  andresoares 26/10/2015, 17:34

    Windows 7 + Access 2010;

    Possuo um formulário para lançar pedidos. (Campos: Data, Cliente, Produto, Quantidade, Aprovado)

    Preciso que o Subformulário seja preenchido repetindo os campos: Data, Cliente e Produto. Sempre que o campo aprovado for "sim". E repetir o registro o numero de vezes =  a quantidade.

    Alguem pode me ajudar?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Alexandre Neves 9/6/2016, 14:26

    Boa tarde,
    Porque não houve respostas
    O assunto está resolvido ou por resolver?
    Se faltar solução, coloque bd com dados para trabalhar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Duplicar registro (mesmo) Empty Re: Duplicar registro (mesmo)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 11:48