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

    [Resolvido]Unir bases de dados iguais com dados diferentes

    avatar
    Derfel
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 05/09/2011

    [Resolvido]Unir bases de dados iguais com dados diferentes Empty [Resolvido]Unir bases de dados iguais com dados diferentes

    Mensagem  Derfel 24/9/2014, 10:24

    Boas

    Primeiro de tudo quero agradecer ao forum, pois já esclareci algumas dúvidas apenas por consultar os tópicos.

    Quanto ao assunto pelo qual abro o tópico, é o seguinte:

    tenho uma base de dados, com algumas tabelas relacionadas, que foi criada para ser usada sozinha.
    No entanto, foi necessário usar várias cópias, uma para cada zona do país, sempre em ilha (sem qualquer tipo de ligação entre elas).

    O problema é que agora preciso de reunir a informação toda, numa única base de dados Nacional, tendo em conta que os registos das bases de dados regionais têm relacionamentos, e os ID's podem aparecer repetidos.

    Vou tentar exemplificar:

    BDLisboa

    TB1                  TB2
    ID - - - - - - - - ID1
              |
              |
              |          TB3
              - - - - - ID1



    BDPorto

    TB1                  TB2
    ID - - - - - - - - ID1
              |
              |
              |          TB3
              - - - - - ID1




    BDNacional (tenho de is buscar os dados das regionais)

    TB1                  TB2
    ID - - - - - - - - ID1
              |
              |
              |          TB3
              - - - - - ID1



    Se houver (e há) o ID 1000 na BDLisboa e na BDPorto, não posso simplesmente importar os dados para a BDNacional, pois as relações não ficarão a funcionar correctamente.

    A solução que eu vejo é acrescentar uma coluna "REGIÃO" a TODAS as tabelas da BDNacional, que será preenchida de forma automática no momento da importação de dados das BD's Regionais, e juntar esse campo a TODAS as relações.

    Será que há alguma forma mais fácil de fazer isto?

    É que são 15 relações em cada BD, e a BDNacional terá 8*15 (8 BD's Regionais) mais as suas próprias 15 relações... !!!

    O Access que estou a usar é o Professional Plus 2010
    Já agora, se ajudar, as tabelas estão alojadas em SharePoint.


    Agradecido desde já pela atenção

    Saudações
    Derfel
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Unir bases de dados iguais com dados diferentes Empty Re: [Resolvido]Unir bases de dados iguais com dados diferentes

    Mensagem  Alexandre Neves 24/9/2014, 19:50

    Boa noite, e bem-vindo ao fórum
    - crie cópia da bd para salvaguardar dados
    - mude o campo AutoNumeracao para Número
    - acrescente um número ao campo alterado e ao campo da tabela relacionada.
    Este número tem de superar em cada bd a quantidade de registos da tabela da bd anterior.
    exemplo para 3 bd's
    bd1: 1 - 1800
    bd2: 1 - 600
    bd3:1 - 300

    a) bd1 mantém-se

    b) acrescenta 1800 (1800 registos da bd1) aos registos da bd2
    currentdb.execute "UPDATE TB1 SET ID=ID+1800"
    currentdb.execute "UPDATE TB2 SET ID1=ID1+1800"
    currentdb.execute "UPDATE TB3 SET ID1=ID1+1800"

    c) acrescenta 2400 (1800 da bd1 + 600 registos da BD2) aos registos da bd2
    currentdb.execute "UPDATE TB1 SET ID=ID+2400"
    currentdb.execute "UPDATE TB2 SET ID1=ID1+2400"
    currentdb.execute "UPDATE TB3 SET ID1=ID1+2400"

    - junte todos os registos das tabelas
    - altere o nome do campo ID para IDAntigo
    - altere o nome do campo ID1 (na tabela TB2 e TB3) para ID1Antigo
    - crie um campo autonumeração (ID) na tabela TB1
    - crie um campo autonumeração (ID1) nas tabelas TB2 e TB2
    -actualize os campos correspondentes
    currentdb.execute "UPDATE TB1 LEFT JOIN TB2 ON TB1.IDAntigo=TB2.ID1Antigo SET ID1=ID"
    currentdb.execute "UPDATE TB1 LEFT JOIN TB3 ON TB1.IDAntigo=TB3.ID1Antigo SET ID1=ID"
    -elimine os campos IDAntigo da tabela TB1, ID1Antigo da TB2 e ID1Antigo da TB3


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 05/09/2011

    [Resolvido]Unir bases de dados iguais com dados diferentes Empty Re: [Resolvido]Unir bases de dados iguais com dados diferentes

    Mensagem  Derfel 25/9/2014, 00:11

    Boas

    primeiro de tudo, agradeço a ajuda e a resposta célere.

    No entanto, acho que essa resposta tem como intuito a junção das BD's numa só.

    Mas, o que eu pretendo é manter as BD's Regionais a funcionar como estão (elas não são da minha responsabilidade, não as posso alterar) incluindo receberem novos registos. A BD Nacional, tem de funcionar com uma estrutura semelhante, mas tem de ler os dados das outras, por ligação ou importação, e além disso poder acrescentar dados próprios (só disponíveis na BD Nacional).

    Assim, a minha dificuldade reside em apenas ler os dados separados, e juntá-los num só local, mantendo as relações dos registos das várias tabelas, mesmo que tenham ID's iguais (nas BD's originais).

    Alguma ideia?



    Mais uma vez, agradeço desde já a ajuda.


    Saudações
    Derfel

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Unir bases de dados iguais com dados diferentes Empty Re: [Resolvido]Unir bases de dados iguais com dados diferentes

    Mensagem  Alexandre Neves 25/9/2014, 19:42

    Boa noite,
    Assim, crie um campo que identifique a filial. veja se a bd central deverá ter esse campo preenchido ou não.
    A partir daqui, julgo ser possível trabalhar a união doas dados


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 05/09/2011

    [Resolvido]Unir bases de dados iguais com dados diferentes Empty Re: [Resolvido]Unir bases de dados iguais com dados diferentes

    Mensagem  Derfel 7/11/2014, 14:55

    Agradeço as vossas respostas.

    Felizmente consegui que as informações fossem registadas apenas numa BD.


    Saudações

      Data/hora atual: 22/1/2022, 18:21