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


4 participantes

    Mover Registro

    avatar
    paulovtostes
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 18/12/2012

    Mover Registro Empty Mover Registro

    Mensagem  paulovtostes 2/1/2013, 18:46

    Estou tendo o seguinte problema:

    Tenho um banco de dados no qual cadastro alguns processos. Quando os mesmos são arquivados, gostaria de mover os dados (através do formulário) para outra tabela de arquivados.

    Criei um botão de comando no qual coloquei o seguinte código:

    Código:

    Private Sub Arquivar_Processo_Click()
    On Error GoTo Err_Arquivar_Processo_Click

    NdoProcesso = Nz([NdoProcesso])
    NomeDoContato = Nz([NomeDoContato])

        Dim msg
    msg = MsgBox("Arquivar processo " & NdoProcesso & " de " & NomeDoContato & "?", vbYesNo, "Confirmação")
    If msg = vbNo Then
    'do nothing
    Else
        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdCopy
        DoCmd.OpenTable "Arquivados"
        DoCmd.RunCommand acCmdRecordsGoToNew
        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdPaste
        DoCmd.Close acTable, "Arquivados"
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
        MsgBox " Processo Arquivado com sucesso! ", vbOKOnly, "Aviso"
    End If
    Exit_Arquivar_Processo_Click:
        Exit Sub

    Err_Arquivar_Processo_Click:
        MsgBox Err.Description
        Resume Exit_Arquivar_Processo_Click
       
    End Sub

    Porém o bando de dados retorna um erro, dizendo que os registros não foram colados e que fora criada um tabela "erros ao colar".

    O que pude perceber em uns testes, é que a colagem não obedece à ordem (que está correta no Design) , ou mesmo o Nome do Campo (que também são idênticos). Um campo é colado em outro quando não retorna tal mensagem. (o erro se dá exclusivamente por conta da colagem fora de ordem, tendo em vista que um campo tem formato diferente de outro)

    Gostaria de uma ajuda.

    Obrigado.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    Mover Registro Empty Re: Mover Registro

    Mensagem  Silvio 2/1/2013, 19:12

    Boa tarde Paulo,

    Eu uso esse código para exportar dados de uma tabela para outra.

    Dim db1 As Database, rs1 As DAO.Recordset,
    If MsgBox("Confirma a Exportação desse Registro ?", vbYesNo + vbQuestion, "AVISO") = vbYes Then

    Set db1 = CurrentDb
    Set rs1 = db1.OpenRecordset("arquivados", dbOpenTable)

    With rs1
    ' os campos abaixo do formulário tem que ser iguais aos que estão na tabela para realizar a exportação
    .AddNew
    ' campos que estão na tabela arquivados = campos do fomulario
    ![IdEvento1] = Me.IdEvento1
    ...
    ...
    ...
    ...
    .Update
    End With
    DoCmd.RunCommand acCmdRefresh
    DoCmd.GoToRecord , , acNewRec

    MsgBox "Arquivamento confirmado.... !", vbOKOnly + vbInformation, "AVISO"
    End If
    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    DiogoM
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 08/08/2013

    Mover Registro Empty Deletar Registro

    Mensagem  DiogoM 13/9/2013, 23:15

    Boa Noite.

    Gostaria de saber como faço para excluir o registro ? Utilizei esse cod para fazer uma copia e agr qro deletar o reg original, alguem pode me ajudar pf ? Obrigado
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    Mover Registro Empty Re: Mover Registro

    Mensagem  Silvio 14/9/2013, 02:18

    Seja bem vindo ao fórum Diogo.

    O correto é você abrir um tópico referente a tua duvida, pois esse tópico se refere a um outro assunto.   Nova duvida, novo tópico.

    Mas vou te responder, para não lhe deixar na mão;

    Use o seguinte comando.


    On Error GoTo Err_Delete
           
       Dim numRecord As Integer 'Declaração da variável
       numRecord = InputBox("Informe o Id do Cliente....:", " Aviso...")
       
       'Confirmação de operação de delete
       If MsgBox("sua mensagem de aviso aqui & numRecord & "?", vbQuestion + vbYesNo, " Aviso...") = vbYes Then
           
           Dim SQL As String
           DoCmd.SetWarnings False 'Aviso de execução
           SQL = "DELETE * FROM suatabelaaqui WHERE suachaveprimariaaqui= " & numRecord 'ALTERE O NOME DA TABELA E NOME DO CAMPO
                                              'tabela                     nome do campo
           DoCmd.RunSQL SQL 'Executa consulta
                                       
           MsgBox "Exclusão realizada com sucesso!", vbInformation, "Aviso..." 'Confirmação do processo
         DoCmd.GoToRecord , , acNewRec
         
       Else
       MsgBox " Ação cancelada pelo usuário", vbInformation, " Aviso...l"
       
           Exit Sub
                                 
       End If
       DoCmd.RunCommand acCmdRefresh
       DoCmd.GoToRecord , , acNewRec
       
       
    Exit_Delete:
    Exit Sub

    Err_Delete:
       MsgBox "Erro número: " & Err.Number & vbLf & vbLf & Err.Description, vbCritical, "Avlso..."

    Resume Exit_Delete
    End Sub


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    DiogoM
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 08/08/2013

    Mover Registro Empty Re: Mover Registro

    Mensagem  DiogoM 16/9/2013, 22:31

    Boa Noite.
    Silvio eu n abri um novo topico, pois queria uma resposta sobre o cod q foi feito por vc, e n sabia como mencionar vc no novo topico.

    Em relação ao codigo q vc me passou para deletar um registro.
    Estou utilizando um formulario q mostra todas informações sobre o funcionario selecionado que esta dentro da tabela funcionarios ativos, e nesse formulario eu criei um botão q quando eu clicasse nele o registro do funcionario atual (que esta sendo exibido no form) seja movido para o form de funcionarios arquivados (seria mover registros de uma tabela para outra) o primeiro codigo q vc passou para o nosso colega seria somente para copiar utilizei ele e deu certo, mas esse agr q vc me passou n estou conseguindo excluir o registro, tem como inserir apenas uma linha para deletar o registro no primeiro codigo citado (o que faz a copia) ? ja tentei usar o comando insert into mas venho apanhando para realizar esse processo, pois não tenho quase nenhum conhecimento sobre desenvolvimento em VBA.
    Qualuquer coisa posso criar um novo topico e te mando o link dps para tentar solucionar o problema.
    Obrigado
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5074
    Registrado : 20/04/2011

    Mover Registro Empty Re: Mover Registro

    Mensagem  Silvio 17/9/2013, 11:31

    Bom dia Diogo.

    O comando para excluir faz exatamente isso.. Coloque esse comando em um botão, e após a cópia o usuário poderá deletar esse registro. Ao clicar no botão, vai ser pedido o número da chave primária:

    numRecord = InputBox("Informe o Id do funcionário....:", " Aviso...") --> aqui ele pede a chave primária.

    Nas linhas abaixo, realiza a exclusão do funcionário, baseado na chave primária.
    Dim SQL As String
    DoCmd.SetWarnings False -->Aviso de execução
    SQL = "DELETE * FROM suatabelaaqui WHERE suachaveprimariaaqui= " & numRecord -->ALTERE O NOME DA TABELA E NOME DO CAMPO
    'tabela nome do campo
    DoCmd.RunSQL SQL -->Executa consulta

    MsgBox "Exclusão realizada com sucesso!", vbInformation, "Aviso..." -->Confirmação do processo executado.
    DoCmd.GoToRecord , , acNewRec --> aqui vai para um novo registro. Essa linha pode ser excluída ou comentada com o apóstrofo ( ' ), sem os parenteses é claro. Isso vale para o outro código também


    Ou podemos fazer uma " salada de frutas ", como pode ser visto abaixo....


    Dim db1 As Database, rs1 As DAO.Recordset,
    If MsgBox("Confirma a Exportação desse Registro ?", vbYesNo + vbQuestion, "AVISO") = vbYes Then

    Set db1 = CurrentDb
    Set rs1 = db1.OpenRecordset("arquivados", dbOpenTable)

    With rs1
    ' os campos abaixo do formulário tem que ser iguais aos que estão na tabela para realizar a exportação
    .AddNew
    ' campos que estão na tabela arquivados = campos do fomulario
    ![IdEvento1] = Me.IdEvento1
    ...
    ...
    ...
    ...
    .Update
    End With
    DoCmd.RunCommand acCmdRefresh
    DoCmd.GoToRecord , , acNewRec

    MsgBox "Arquivamento confirmado.... !", vbOKOnly + vbInformation, "AVISO"
    End If


    Dim numRecord As Integer 'Declaração da variável
    numRecord = InputBox("Informe o Id do Cliente....:", " Aviso...")

    'Confirmação de operação de delete
    If MsgBox("sua mensagem de aviso aqui & numRecord & "?", vbQuestion + vbYesNo, " Aviso...") = vbYes Then

    Dim SQL As String
    DoCmd.SetWarnings False 'Aviso de execução
    SQL = "DELETE * FROM suatabelaaqui WHERE suachaveprimariaaqui= " & numRecord 'ALTERE O NOME DA TABELA E NOME DO CAMPO
    'tabela nome do campo
    DoCmd.RunSQL SQL 'Executa consulta

    MsgBox "Exclusão realizada com sucesso!", vbInformation, "Aviso..." 'Confirmação do processo
    DoCmd.GoToRecord , , acNewRec

    Else
    MsgBox " Ação cancelada pelo usuário", vbInformation, " Aviso...l"

    Exit Sub

    End If
    DoCmd.RunCommand acCmdRefresh
    DoCmd.GoToRecord , , acNewRec


    Exit_Delete:
    Exit Sub

    Err_Delete:
    MsgBox "Erro número: " & Err.Number & vbLf & vbLf & Err.Description, vbCritical, "Avlso..."

    Resume Exit_Delete

    Bons estudos.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    avatar
    DiogoM
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3
    Registrado : 08/08/2013

    Mover Registro Empty Mover registro

    Mensagem  DiogoM 24/9/2013, 21:49

    Boa Tarde.
    Silvio obrigado pela sua ajuda e pela sua atenção, o cod funcionou perfeitamente fiz alguns ajustes nele e esta funcionando, ainda so fiz alguns testes com ele, mas logo ja vou estar implantando em meu sistema na empresa, desculpa pela demora estava sem tempo para entrar no forum e tbm fazer os testes com o cod.
    Por acaso com esse cod ele consegue mover registro tipo anexo ?
    Obrigado pela ajuda.

    Diogo Moura
    avatar
    PetryX
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 25
    Registrado : 22/03/2017

    Mover Registro Empty Re: Mover Registro

    Mensagem  PetryX 27/4/2017, 04:15

    Olá,

    Minha duvida seria no caso... se foce um SubForms, como deveria ser o codigo pra arquivar?

    Conteúdo patrocinado


    Mover Registro Empty Re: Mover Registro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 02:27