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] Importar Dados de uma BD para outra BD

    dteixa
    dteixa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 281
    Registrado : 15/01/2012

    [Resolvido] Importar Dados de uma BD para outra BD Empty [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  dteixa 4/11/2012, 22:46

    Boas
    Mais uma duvida para os mestres,

    tenho uma BD já com alguns anos que agora estive a atualizar, agora eu quero importar os dados das tabelas na BD1 para a BD2, o problema é que algumas das tabelas na BD2 tem novos campos que não existem na BD1.

    Duvida, como se faz a importação dos dados neste caso?

    desde já muito obrigado.


    Última edição por dteixa em 6/11/2012, 17:56, editado 1 vez(es)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Importar Dados de uma BD para outra BD Empty Re: [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  criquio 4/11/2012, 22:54

    Código:
    Dim rs1 As Recordset, rs2 As Recordset

    Set rs1 = DBEngine.Workspaces(0).OpenDatabase("C:\Pastas\DataBase.accdb", False, False, "MS Access;PWD=SenhaSeHouver").OpenRecordset("NomeDaTabela")

    Set rs2 = CurrentDb.OpenRecordset("NomeDaTabelaLocal")

    Do While Not rs1.EOF
        rs2.AddNew

        rs2!Campo1 = rs1!Campo1
        rs2!Campo2 = rs1!Campo2
        rs2!Campo3 = rs1!Campo3
        ...
        rs2.MoveNext
        rs2.Update
    Loop

    rs1.Close
    Set rs1 = Nothing

    rs2.Close
    Set rs2 = Nothing
    rs1 é o banco antigo e rs2 é o banco novo, sendo a cópia feita de dentro desse banco novo. Se for fazer diferente, basta inverter.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    dteixa
    dteixa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 281
    Registrado : 15/01/2012

    [Resolvido] Importar Dados de uma BD para outra BD Empty Re: [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  dteixa 4/11/2012, 23:02

    obrigado criquio, vou testar
    2 perguntas
    1-este código é para por num botão?
    2-tenho de fazer um por cada tabela diferente?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Importar Dados de uma BD para outra BD Empty Re: [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  criquio 5/11/2012, 11:59

    1 - Pode ser;

    2 - Pode ser tambem, ou pode declarar tudo junto:

    Código:
    Dim rs1 As Recordset, rs2 As Recordset, rs3 As Recordset, rs4 As Recordset...

    Set rs1 = DBEngine.Workspaces(0).OpenDatabase("C:\Pastas\DataBase.accdb", False, False, "MS Access;PWD=SenhaSeHouver").OpenRecordset("NomeDaTabela1Externa")

    Set rs2 = DBEngine.Workspaces(0).OpenDatabase("C:\Pastas\DataBase.accdb", False, False, "MS Access;PWD=SenhaSeHouver").OpenRecordset("NomeDaTabela2Externa")

    Set rs3 = CurrentDb.OpenRecordset("NomeDaTabela1Local")

    Set rs4 = CurrentDb.OpenRecordset("NomeDaTabela2Local")
    ...
    Se todas as tabelas do banco externo tiverem os mesmos nomes das tabelas do banco loca e todos os campos de todas as tabelas tiverem os mesmos nomes dos campos das tabelas que irão receber esses dados, pode ainda fazer um loop pelas tabelas e dentro desse loop um loop pelos campos de cada tabela e ir importando.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    dteixa
    dteixa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 281
    Registrado : 15/01/2012

    [Resolvido] Importar Dados de uma BD para outra BD Empty Re: [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  dteixa 5/11/2012, 14:34

    Mais uma vez obrigado Criquio

    eu coloquei assim no botão, mas não funciona, apresenta o seguinte erro:

    RUN-TIME ERROR '3021':
    NÃO EXISTE NENHUM REGISTO ATUAL.

    Private Sub Command0_Click()

    Dim rs1 As Recordset, rs2 As Recordset

    Set rs1 = DBEngine.Workspaces(0).OpenDatabase("E:\access\Teste\Teste_Copiar.mdb", False, False, "").OpenRecordset("tblProdutos")

    Set rs2 = CurrentDb.OpenRecordset("tblProdutos")

    Do While Not rs1.EOF
    rs2.AddNew

    rs2!CódigoProduto = rs1!CódigoProduto
    rs2!Nome = rs1!Nome
    rs2!Und = rs1!Und
    rs2!QtdUnd = rs1!QtdUnd
    rs2!CustoPadrão = rs1!CustoPadrão

    rs2.MoveNext
    rs2.Update

    Loop

    rs1.Close
    Set rs1 = Nothing

    rs2.Close
    Set rs2 = Nothing
    End Sub
    dteixa
    dteixa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 281
    Registrado : 15/01/2012

    [Resolvido] Importar Dados de uma BD para outra BD Empty Re: [Resolvido] Importar Dados de uma BD para outra BD

    Mensagem  dteixa 6/11/2012, 14:57

    Boas
    Com a ajuda do meu amigo Duarte Botelho, já resolvi o problema que agora partilho convosco. cheers
    Em anexo segue o exemplo que podem adaptar as vossas BDs, podem importar dados de tabela a tabela ou podem importar os dados de todas as tabelas de uma só vez
    só tem de dar o caminho correto da BD com os dados e renomear as tabelas no código.
    Anexos
    [Resolvido] Importar Dados de uma BD para outra BD Attachmentimportar_dados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (158 Kb) Baixado 54 vez(es)
    Antonio Haele Arnaut
    Antonio Haele Arnaut
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 21/02/2012

    [Resolvido] Importar Dados de uma BD para outra BD Empty Exemplo "Importar dados"

    Mensagem  Antonio Haele Arnaut 2/12/2014, 19:02

    Baixei o exemplo. Gostei muito. Resolve uma necessidade minha! Obrigado e parabéns! "Quando crescer, quero ser como vocês!" sunny sunny sunny

      Data/hora atual: 28/11/2022, 02:37