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


2 participantes

    Duplicar registro com chave primária no código

    avatar
    ceciliacica
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 16/09/2012

    Duplicar registro com chave primária no código Empty Duplicar registro com chave primária no código

    Mensagem  ceciliacica 7/8/2018, 19:49

    Boa Tarde, Prezados

    Quero criar um botão para criar uma cópia do registro atual, usei o código abaixo, mas ele só funciona se eu não tiver chave primária no campo código, tem alguma forma de criar a cópia com mudança do código, ou criar com exceção dele.

    Private Sub BTN_DUPLICAR_Click()

    On Error GoTo Err_BTN_DUPLICAR_Click

    DoCmd.RunCommand acCmdSelectRecord

    DoCmd.RunCommand acCmdCopy

    DoCmd.RunCommand acCmdRecordsGoToNew

    DoCmd.RunCommand acCmdSelectRecord

    DoCmd.RunCommand acCmdPaste

    Exit_BTN_DUPLICAR_Click:

    Exit Sub

    Err_BTN_DUPLICAR_Click:

    MsgBox Err.Description

    Resume Exit_BTN_DUPLICAR_Click

    End Sub
    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 com chave primária no código Empty Re: Duplicar registro com chave primária no código

    Mensagem  Alexandre Neves 8/8/2018, 21:20

    Boa noite,

    Provável que tenha que trabalhar sobre DAO
    Veja este exemplo (https://)stackoverflow.com/questions/39213099/duplicate-record-with-new-primary-key-vba


    .................................................................................
    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
    ceciliacica
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 9
    Registrado : 16/09/2012

    Duplicar registro com chave primária no código Empty Re: Duplicar registro com chave primária no código

    Mensagem  ceciliacica 9/8/2018, 03:35

    Alexandre,

    Eu tentei com este exemplo, mas no .Update em amarelo, depurou e deu o mesmo erro 3022 pedindo para remover a chave primária. Poderia me auxiliar novamente. Grata

    Private Sub cmdDuplicate_Click()

     Dim rstSource   As DAO.Recordset
     Dim rstInsert   As DAO.Recordset
     Dim fld         As DAO.Field

     If Me.NewRecord = True Then Exit Sub

     Set rstInsert = Me.RecordsetClone
     Set rstSource = rstInsert.Clone
     With rstSource
       If .RecordCount > 0 Then
         ' Go to the current record.
         .Bookmark = Me.Bookmark
         With rstInsert
           .AddNew
             For Each fld In rstSource.Fields
               With fld
                 If .Attributes And dbAutoIncrField Then
                   ' Skip Autonumber or GUID field.
                 ElseIf .Name = "SomeFieldToPreset" Then
                   rstInsert.Fields(.Name).Value = SomeValue
                 ElseIf .Name = "SomeFieldToExclude" Then
                   ' Leave blank
                 Else
                   ' All other fields.
                   ' Copy field content.
                   rstInsert.Fields(.Name).Value = .Value
                 End If
               End With
             Next
    .Update
           ' Go to the new record and sync form.
           .MoveLast
           Me.Bookmark = .Bookmark
           .Close
         End With
       End If
       .Close
     End With

     Set rstInsert = Nothing
     Set rstSource = Nothing

    End Sub
    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 com chave primária no código Empty Re: Duplicar registro com chave primária no código

    Mensagem  Alexandre Neves 9/8/2018, 22:01

    Boa noite,
    Sem testar não vejo onde pode estar errado mas veja, a cada passo da execução, se ele passa pelo campo de auto-numeração ou nã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

    Conteúdo patrocinado


    Duplicar registro com chave primária no código Empty Re: Duplicar registro com chave primária no código

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 05:30