Exportando, modificando externamente e reimportando dados com o MS Access

0

Estou trabalhando com um cliente que possui um 'aplicativo' legado do MS Access com dezenas de tabelas de banco de dados. Tal como está, apenas uma pessoa pode atualizar a base de dados de cada vez, uma vez que não é distribuída; autônomo em uma única estação de trabalho. Dado o tamanho e a complexidade do aplicativo MS Access, não podemos reescrevê-lo completamente - portanto, o cliente nos pediu para tornar certas tabelas atualizáveis por meio de um aplicativo da Web, importando e exportando os dados no início e no final da fase de atualização.

Fomos encarregados de desenvolver o seguinte fluxo de trabalho:

  • Exportar dados relevantes das tabelas do Access necessárias em um formato intermediário (CSV, XML etc.) no início do processo de atualização de dados
  • Importar dados para um aplicativo da web desenvolvido pelo MySQL
  • Por um período fixo, permita que vários usuários atualizem os dados simultaneamente por meio do aplicativo da Web
  • No final do processo de atualização de dados, exporte os dados do MySQL em um formato intermediário
  • Importar dados de volta para o MS Access

No entanto, não consigo encontrar um mecanismo apropriado para ativar o último estágio. Nenhuma opção de importação do Access parece permitir que você atualize os registros existentes, além de adicionar novos registros - você pode importar os dados para uma nova tabela, bem como anexar novos registros a uma tabela existente, mas não atualizar os registros existentes com base na chave primária. Como o Access coloca em todas as suas opções Import ...

Changes made to the source data will not be reflected in the database

Eu perdi algo com uma das opções de importação? Quais outras abordagens podem existir?

    
por codinghands 15.05.2014 / 20:51

1 resposta

2

No passado, neste cenário, eu quebrei a importação / atualização em várias etapas

  1. Anexe os dados em uma tabela "temp" vazia

  2. Crie / execute uma consulta de atualização, unindo as tabelas de destino e de origem / temporária

  3. Criar / executar uma consulta de acréscimo, tabelas de origem / temporária de destino e de origem ingressando à esquerda (com chave de destino = nulo)

  4. (opcional) anexe a tabela temporária a uma tabela de histórico

  5. Truncar a tabela temporária

Os passos podem ser facilmente automatizados com macros.

    
por 15.05.2014 / 21:45