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

    Retirar dados de uma tabela para outra

    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty Retirar dados de uma tabela para outra

    Mensagem  icruznina 7/7/2020, 14:25

    Bom dia. Preciso limpar uma tabela A, porém não quero perder os dados inativos, gostaria de passar esses dados inativos para outra tabela B. Tem como automatizar isso? Obrigada.
    Obs.: preciso limpar a tabela A ao transferir esses dados.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

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

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Alexandre Neves 7/7/2020, 15:11

    Boa tarde
    Pode. Tabela a retirar os dados? Tabela a incluir os dados? Campos que se ligam entre as tabelas? Condição em que os dados são transferidos (ou nenhuma condição para todos os dados serem transferidos)


    .................................................................................
    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
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty sim, campos são iguais

    Mensagem  icruznina 7/7/2020, 15:27

    sim, todos os campos são iguais, porém tentei um procedimento que achei aqui no forum, só que o access retorna que não aceita o procedimento com multiplos campos.
    Pode me passar a solução que você disse que há?
    Tenho uma tabela chamada [letras az], criei uma tabela chama inativos, copiei os campos da tb [letras az] e colei na tb inativos, agora só preciso automatizar a transferencia desses dados que estão marcados x no campo inativo da tabela [letras az] e limpar ao mesmo tempo essa tabela [letras az].
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 7/7/2020, 15:46

    Grande ICruzNina,

    Fiz o seguinte:

    1. Criei a tabela TbExemploA com quatro campos e cadastrei alguns itens fictícios;
    2. Criei a tabela TbExemploB, idêntica tabela anterior para receber conteúdo da TbExemploA;
    3. Fiz o código abaixo para copiar conteúdo TbExemploA para TbExemploB e em seguida apagar conteúdo da TbExemploA.

    Faça as devidas adaptações que dará tudo certo.

    Dim db As Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim resultado As VbMsgBoxResult
    Set db = CurrentDb()

    Set rs1 = db.OpenRecordset("SELECT * FROM [TbExemploA]")
    Set rs2 = db.OpenRecordset("SELECT * FROM [TbExemploB]")

    MsgBox "Vamos copiar tabela..."

    rs1.MoveFirst

    Do While Not rs1.EOF

    rs2.AddNew
    rs2![Grupo] = rs1![Grupo]
    rs2![Desc] = rs1![Desc]
    rs2![Familia] = rs1![Familia]
    rs2![Cor] = rs1![Cor]
    rs2.Update
    rs2.Requery

    rs1.MoveNext

    Loop

    rs1.Close
    Set rs1 = Nothing
    rs2.Close
    Set rs2 = Nothing
    db.Close
    Set db = Nothing

    MsgBox "Tabela TbExemploA copiada para TbExemploB com sucesso..."

    MsgBox "Vamos apagar conteúdo da tabela TbExemploA..."


    resultado = MsgBox("Tem certeza que deseja apagar conteúdo da TbExemploA?", vbYesNo, "Tomando uma decisão")
    If resultado = vbYes Then

    Application.DoCmd.SetWarnings False
    Application.DoCmd.RunSQL "DELETE * FROM TbExemploA"
    Application.DoCmd.SetWarnings True
    MsgBox "Conteúdo TbExemploA apagado com sucesso..."

    Else

    MsgBox "Você acaba de recusar a ação"

    End If

    Espero ter ajudado.

    Abraços

    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 7/7/2020, 15:54

    Olá,

    Não havia visto suas observações acima e nem as considerações do Grande Alexandre. Enquanto eu fazia, vocês postavam. Postei sem verificar. Desculpem. Mesmo assim espero ter ajudado.

    Abraços
    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty entendi, mas...

    Mensagem  icruznina 7/7/2020, 17:51

    preciso copiar somente os dados inativos, ou seja, criei um campo de marcar "Inativo". Só esses inativos que desejo mover. Tem como?
    Ou seja, tenho uma tabela com 5 mil cadastros, porém, tem uns cadastros sem data de cadastro que, dia a dia, desejo ir movendo para tabela de inativos. Não a tabela inteira...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 7/7/2020, 18:55

    Vou criar mais um campo na tabela e deixar alguns como "inativo" para servir como teste. Vai continuar apagando a tabela "A"?

    Abraços
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 7/7/2020, 19:13

    Olá!

    Copiando só os com campo "Situação" = "Inativo".

    Dim db As Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim resultado As VbMsgBoxResult
    Set db = CurrentDb()

    Set rs1 = db.OpenRecordset("SELECT * FROM [TbExemploA]")
    Set rs2 = db.OpenRecordset("SELECT * FROM [TbExemploB]")

    MsgBox "Vamos copiar tabela..."

    rs1.MoveFirst

    Do While Not rs1.EOF

    If rs1![Situação] = "Inativo" Then

    rs2.AddNew
    rs2![Grupo] = rs1![Grupo]
    rs2![Desc] = rs1![Desc]
    rs2![Familia] = rs1![Familia]
    rs2![Cor] = rs1![Cor]
    rs2![Situação] = rs1![Situação]
    rs2.Update
    rs2.Requery
    End If
    rs1.MoveNext

    Loop

    rs1.Close
    Set rs1 = Nothing
    rs2.Close
    Set rs2 = Nothing
    db.Close
    Set db = Nothing

    MsgBox "Tabela TbExemploA copiada para TbExemploB com sucesso..."

    MsgBox "Vamos apagar conteúdo da tabela TbExemploA..."


    resultado = MsgBox("Tem certeza que deseja apagar conteúdo da TbExemploA?", vbYesNo, "Tomando uma decisão")
    If resultado = vbYes Then

    Application.DoCmd.SetWarnings False
    Application.DoCmd.RunSQL "DELETE * FROM TbExemploA"
    Application.DoCmd.SetWarnings True
    MsgBox "Conteúdo TbExemploA apagado com sucesso..."

    Else

    MsgBox "Você acaba de recusar a ação"

    End If


    Abraços

    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty vou testar e volto aqui

    Mensagem  icruznina 7/7/2020, 19:44

    vou testar
    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty quase lá

    Mensagem  icruznina 7/7/2020, 22:29

    entao... ele copiou e deletou toda a tabelaA para a tabelaB, mas eu quero clicar no campo inativo (sim/não) e enviar só aquele registro e APAGAR SÓ ELE. estamos quase...
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 7/7/2020, 23:18

    Boa Noite,

    Você falou isso:
    Preciso limpar uma tabela A, porém não quero perder os dados inativos, gostaria de passar esses dados inativos para outra tabela B. Tem como automatizar isso?
    É isso que o código está fazendo. Ler a tabela A, verifica o campo fictício (eu criei Situação), se o conteúdo dele for "Inativo" copia para tabela B. Ao terminar a cópia, apaga conteúdo da tabela A.
    Mande o BD para ver melhor. Seja um pouco mais explícita.

    Abraços






    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty isso

    Mensagem  icruznina 7/7/2020, 23:43

    Quero retirar da tabelaA os inativos, então criei um campo sim/não chamado inativo. Ao clicar nesse campo, desejo levar esse registro inativo para a tabelaInativo e excluir ele na tabaleA. Somente esse registro Inativo=Sim/Não será transportado para tabelaInativo e depois será deletado da tabelaA.
    avatar
    Zaccariotto
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 22/03/2019

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Zaccariotto 8/7/2020, 00:04

    Finformática

    Boa noite
    neste código que vc criou, copiando os dados de uma tabela para outra, tenho uma dúvida, a questão do ID movimento se existir, ele iria acrescentar ao último registro, ou necessita alguma mudança.

    grato.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 00:27

    Do modo que está o código ele sempre irá acrescentar na tabela B. Você escolhe quais campos quer copiar. Contanto que as tabelas tenham a mesma estrutura. O ID que você faz referência é o que? É a chave primária?
    Mande o BD.

    Abraços
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 00:30

    Zaccarioto,

    Desculpas, não prestei atenção, estava pensando ser o outro amigo. Porém a resposta também serve para você.

    Abraços
    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty consegui

    Mensagem  icruznina 8/7/2020, 00:52

    Galera!!! Obrigada, fiz umas adaptações aqui
    copiei um codigo de apagar registro na internet e adaptei o codigo.

    segue abaixo o que fiz:


    Criei na tabelaA um campo sim/não Inativo, em Eventos "ao clicar", colei o codigo abaixo:

    Private Sub cxINATIVO_Click()

    Dim db As Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim resultado As VbMsgBoxResult
    Set db = CurrentDb()
    Set rs1 = db.OpenRecordset("SELECT * FROM [LETRAS AZ]")
    Set rs2 = db.OpenRecordset("SELECT * FROM [tbInativos]")
    MsgBox "Vamos copiar tabela..."
    rs1.MoveFirst
    If rs1![INATIVO] = Yes Then
    rs2.AddNew
    rs2![DATA DO CADASTRO] = rs1![DATA DO CADASTRO]
    rs2![CPF] = rs1![CPF]
    rs2![CRAS] = rs1![CRAS]
    rs2![NOME] = rs1![NOME]
    rs2.Update
    rs2.Requery
    End If
    rs1.MoveNext
    MsgBox "REGISTRO COPIADO PARA TABELA DE INATIVOS"
    MsgBox "VAMPOS APAGAR O REGISTRO NA TABELA DE ATIVOS?"

    resultado = MsgBox("TEM CERTEZA QUE VAI APAGAR ESTE REGISTRO?", vbYesNo, "Tomando uma decis?o")
    If resultado = vbYes Then
    DoCmd.RunCommand acCmdDeleteRecord
    MsgBox "APAGADO COM SUCESSO!", vbInformation, "Exclu?do"
    Else
    MsgBox "VOCÊ ACABA DE REJEITAR AÇÃO APAGAR"
    End If
    End Sub




    Obrigada por tudo.
    Valeu!!!
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 01:03

    ICruzNina,

    Veja a imagem. Seria assim?

    Está meio ilegível. O botão na parte inferior é "Copiar Inativos" e "Apagar conteúdo da tabela A e Fechar Formulário". Se deixar copiar inativos e em seguida apagar tabela A a tela fica toda bagunça. Afinal estamos apagando os registros que alimentam o formulário. Motivo de dois botões. Na coluna inativos você marca os desejados e depois clica no botão Copiar Inativos.

    Seria isso?

    Abraços
    Anexos
    Retirar dados de uma tabela para outra AttachmentTelaCheiaX.jpg
    Você não tem permissão para fazer download dos arquivos anexados.
    (61 Kb) Baixado 9 vez(es)
    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty sim

    Mensagem  icruznina 8/7/2020, 01:19

    então, comemorei antes do tempo.....
    no meu codigo, ele copia sempre o mesmo registro que foi copiado antes...
    algo deu errado

    e é no bloco de apagar que está o erro... esse codigo que copiei daqui, o primeiro lá em cima, apaga a tabela toda, mas não é isso que eu quero.
    quero copiar e apagar só o que eu clicar em inativo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 02:02

    No meu aqui ele apaga só o conteúdo da tabela. Não a estrutura. Mais uma vez você lá no início falou apagar o conteúdo da tabela, não falou apagar o que foi copiado. Estranhei o esquema e algum comentário cheguei a fazer no começo. Finalmente detalhe todo o esquema que necessita.

    Abraços

    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty bom dia. Vou detalhar

    Mensagem  icruznina 8/7/2020, 11:35

    Tenho uma tabela de cadastro chamada [LETRAZ AZ]. Tenho clientes que sumiram, mudaram de municipio, etc, então criei uma cx seleção (sim/não),
    só que, como são muitos clientes, quero automatizar a ação, ao clicar em sim quero transportar esse cliente para a tabela tbInativos e ao mesmo tempo em que transporta, quero deletar esse cliente da tabela [LETRAS AZ].
    Obrigada.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 13:50

    Por favor, mande uma parte dessas tabelas para ver nomes e tipos de campos, estrutura das tabelas e fazer com nomes reais. Se as tabelas são tão grandes, envie, pelo menos 100 registros. Isso ajuda muito.

    Muito grato, abraços

    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty OK

    Mensagem  icruznina 8/7/2020, 14:29

    Resolvi tudo da seguinte maneira:

    criei um botão INATIVO, colei codigo VBA da internet para mover dados para outra tabela
    colei também codigo VBA da internet para deletar registro, juntei os dois no mesmo botão

    deu certinho, o botão move o registro e em seguida deleta o registro.

    Foi bem facil, sem complicações.
    vou colar o codigo aqui pra servir pra outras pessoas:
    ---------------------------------------------------------------------

    Private Sub BTEXPORTAR_Click()
    CurrentDb.Execute "INSERT INTO tbInativos ([DATA DO CADASTRO], [CPF], [CRAS], [NOME], [DATA DE NASCIMENTO]) VALUES ('" & txtdatacad.value & "','" & txtcpf.value & "','" & txtcras.value & "','" & txtnome.value & "','" & txtdtnasc.value & "')"
    MsgBox ("DADOS INSERIDOS COM SUCESSO."), vbCritical, "Dados"

    If MsgBox("Este procedimento irá excluir este registro definitivamente ? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdDeleteRecord
    DoCmd.SetWarnings True
    Else
    Exit Sub
    End If
    End Sub

    -----------------------------------------------------------------------

    basta adaptar a realidade do seu formulário.
    Obrigada.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 709
    Registrado : 23/03/2010

    Retirar dados de uma tabela para outra Empty Re: Retirar dados de uma tabela para outra

    Mensagem  Finformática 8/7/2020, 15:16

    Onde você verifica o campo "Inativo"? Do modo que está copia tudo...
    avatar
    icruznina
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 54
    Registrado : 03/08/2015

    Retirar dados de uma tabela para outra Empty Olá

    Mensagem  icruznina 25/8/2020, 23:59

    Inativo, nesse caso, é quando coloco data de desligamento, daí, clico no botão Inativo que tem o código e transfiro aquele registro, logo em seguida ele é excluído.

      Data/hora atual: 14/6/2021, 05:53