Pode manter as bases de dados do Microsoft Access organizadas e geríveis ao arquivar periodicamente registos antigos ou inativos. Pode arquivar todas as tabelas numa base de dados, tabelas específicas ou apenas registos específicos, por exemplo, registos mais antigos do que uma data específica. Este tópico explica como utilizar três opções diferentes para arquivar os dados na sua base de dados do Access.
Neste artigo
Quando deve considerar arquivar?
Quando uma base de dados no seu computador contém dados que já não pretende utilizar, mas quer manter esses dados à mão caso precise deles em algum momento ou para cumprir uma política de retenção de dados, o arquivamento é uma boa forma de reter esses dados. O arquivo também é frequentemente utilizado para manter dados com base numa condição de data, como no final de um mês.
Formas de arquivar dados
A tabela seguinte lista métodos para arquivar dados, uma descrição do método, uma explicação de quando deve utilizar cada método e outras considerações específicas para o método .
Método |
Descrição |
Utilizar quando... |
Outras coisas a ter em consideração |
Faz periodicamente uma cópia de arquivo de uma tabela específica e substitui essa tabela por uma nova cópia de tabela vazia. |
Todos os registos numa tabela cumprem as condições que utiliza para determinar se pretende arquivar. EXEMPLO: Tem uma tabela que armazena os extremos da temperatura diária. Todos os anos, arquiva a tabela e começa de novo com uma vazia. |
|
|
Faça periodicamente uma cópia de arquivo da base de dados de back-end e, em seguida, substitua a base de dados de back-end por uma nova, vazia. Requer uma base de dados dividida (uma base de dados composta por: um ficheiro de base de dados de back-end que contém todas as tabelas; e um ficheiro de base de dados front-end que contém todos os outros objetos de base de dados). |
Todos os registos na maioria das tabelas numa base de dados cumprem a condição que utiliza para determinar se pretende arquivar. EXEMPLO: a sua base de dados consiste em várias tabelas com diferentes tipos de dados meteorológicos. Todos os anos, arquiva todas as tabelas. |
|
|
Executa periodicamente uma consulta que seleciona os registos para arquivar e adiciona os dados a uma tabela de arquivo e, em seguida, executa uma consulta para selecionar os mesmos registos (da tabela original) e eliminá-los. |
Alguns dos registos numa tabela cumprem a condição que utiliza para determinar se pretende arquivar. EXEMPLO: pretende arquivar transações de bibliotecas (saídas) se a Data de Entrada Dada tiver, pelo menos, um ano. |
Aviso: Se precisar de utilizar parâmetros nas consultas, deve criar um formulário para processar os parâmetros. Caso contrário, arrisca a perda de dados. |
Trabalhar em torno da integridade referencial
Se os registos que pretende arquivar estiverem relacionados com registos noutras tabelas, poderá ter de contornar a relação. Se os registos que pretende arquivar forem registos "subordinados" (pertencem ao lado "muitos" de um relação um-para-muitos ), provavelmente pode arquivá-los em segurança sem preocupações. Se os registos que pretende arquivar forem registos "principais" (pertencem ao lado "um" de um relação um-para-muitos ), quando os arquivar, os registos "subordinados" relacionados poderão:
-
Impedir que elimine os registos "principais". Isto pode causar problemas se já tiver acrescentado os registos "principais" à tabela de arquivo.
- Ou -
-
Torne-se "órfãos" — registos que pertencem a um "elemento principal" que não existe. Isto pode causar problemas com a integridade e a funcionalidade dos dados na base de dados que utiliza os registos "órfãos".
Para ter em conta a integridade referencial, siga os seguintes passos:
-
Determine que registos "subordinados" pertencem aos registos que pretende arquivar. Por exemplo, para arquivar registos de recursos emprestados numa biblioteca, determine primeiro se existem transações abertas nesses recursos, ou seja, se os recursos foram reservados, mas não devolvidos.
-
Execute um dos seguintes passos:
-
Se os registos "subordinados" puderem ser sempre eliminados em segurança, certifique-se de que a relação impõe integridade referencial, com eliminações em cascata. Isto garante que todos os registos "subordinados" relacionados serão eliminados.
-
Se os registos "subordinados" não puderem ser sempre eliminados em segurança, considere arquivar todas as tabelas na base de dados.
-
Create uma consulta que seleciona registos "principais" que não têm registos "subordinados". Em seguida, utilize essa primeira consulta para criar as suas consultas de arquivo (consulte a secção Mover periodicamente registos para uma tabela de arquivo), em vez de utilizar a tabela "principal".
-
Substituir periodicamente uma tabela
Se quiser arquivar todos os dados numa tabela, pode substituir periodicamente a tabela por uma cópia vazia.
Importante: Se a tabela que arquivar estiver relacionada com outras tabelas, poderá ter de contornar a integridade referencial.
-
No Painel de Navegação, selecione as tabelas que pretende arquivar, prima CTRL+C e, em seguida, prima Ctrl+V.
-
Na caixa de diálogo Colar Tabela Como , em Opções de Colagem, selecioneApenas Estrutura e, em seguida, clique em OK.
O Access atribui o nome da cópia como uma Cópia do nome da tabela original. -
No Painel de Navegação, clique com o botão direito do rato na tabela original e, em seguida, clique em Mudar o Nome no menu de atalho.
Atribua outro nome à tabela para indicar o que contém, como "DailyTemperatureExtremes_archive_2019". -
No Painel de Navegação, clique com o botão direito do rato na cópia vazia e, em seguida, clique em Mudar o Nome no menu de atalho. Mude o nome da mesma com o nome da tabela original.
Substituir periodicamente todas as tabelas
Se utilizar uma base de dados dividida, pode substituir periodicamente todas as tabelas ao substituir a base de dados de back-end por uma cópia vazia.
Para tal, prepare primeiro a cópia vazia. A menos que a estrutura da base de dados seja alterada, pode reutilizar esta cópia vazia sempre que arquivar. Para arquivar, basta mudar o nome da base de dados de back-end existente para indicar que é um arquivo e guardar a cópia vazia como a nova base de dados de back-end.
Preparar uma cópia vazia de uma base de dados de back-end
Primeiro, importe as definições de tabela para todas as tabelas na base de dados de back-end.
-
No separador Ficheiro, clique em Novo, selecione Base de dados em branco e, em seguida, clique em Create.
-
Feche a Tabela1.
-
No separador Dados Externos , no grupo Importar & Ligação , clique em Acesso.
-
Na caixa de diálogo Obter Dados Externos – Base de dados do Access , selecione Importar tabelas, consultas, formulários, relatórios, macros e módulos para a base de dados atual e, em seguida, clique em Procurar.
-
Na caixa de diálogo Abrir Ficheiro , selecione a base de dados de back-end. Clique em Abrir para fechar a caixa de diálogo Abrir Ficheiro e, em seguida, clique em OK.
-
Na caixa de diálogo Importar Objetos , clique em Opções.
-
Em Importar Tabelas, selecione Apenas Definição.
-
No separador Tabelas , clique em Selecionar Tudo, clique em OK e, em seguida, clique em Fechar.
Adicionar dados a quaisquer tabelas de referência na cópia vazia
Para cada tabela de referência, efetue os seguintes passos:
-
Ligue à tabela de referência na base de dados de back-end existente.
-
Create uma consulta de acréscimo que adiciona todos os registos do original à cópia.
Substituir a base de dados de back-end por uma cópia vazia
Primeiro, mude o nome da base de dados de back-end existente para indicar que é agora um arquivo. Em seguida, abra a cópia vazia e guarde-a com o nome original da base de dados de back-end.
-
Clique no separador Ficheiro e, em seguida, clique em Guardar Base de Dados Como. Poderá ser-lhe pedido que feche todos os objetos abertos; se assim for, clique em OK. É aberta a caixa de diálogo Guardar Como .
-
Na caixa Guardar em (na parte superior da caixa de diálogo Guardar Como ), certifique-se de que está a guardar o ficheiro no mesmo local que a base de dados de back-end original.
-
Na caixa Nome do Ficheiro , introduza o nome da base de dados de back-end original.
-
Na caixa Guardar com o tipo , selecione Base de Dados do Access (*.accdb).
Mover registos periodicamente para uma tabela de arquivo
Este é um processo de quatro passos que requer fazer uma cópia vazia da tabela que contém os registos que pretende arquivar, criar uma consulta de acréscimo para copiar os registos da tabela original para a tabela de arquivo, criar uma consulta Eliminar para remover os registos arquivados da tabela original e, por fim, criar uma macro para executar ambas as consultas que podem ser executadas quando pretende arquivar. Este processo aparentemente complexo pode ser fácil se seguir os passos pela ordem em que são apresentados abaixo:
Passo 1: Create uma tabela de arquivo
Passo 2: Create uma consulta de acréscimo para copiar dados para a tabela de arquivo
Passo 3: Create uma consulta eliminar para remover dados da tabela original
Passo 4: Create uma macro para executar consultas de acréscimo e eliminação
Passo 1: Create uma tabela de arquivo
Para manter todos os seus registos arquivados numa tabela, efetue este passo uma vez. A tabela de arquivo que criar neste passo irá conter todos os seus registos arquivados.
Para eliminar a sua tabela de arquivo antiga quando cria uma nova, em vez de efetuar este passo, pode utilizar uma consulta de criação de tabela para copiar os dados para a tabela de arquivo. Para tal, avance para o Passo 2.
Para utilizar uma nova tabela de arquivo sempre que arquivar, mas também para manter as suas antigas tabelas de arquivo, mude o nome da tabela de arquivo antiga antes de criar uma nova. Se estiver a arquivar com base numa data, considere atribuir um nome às suas antigas tabelas de arquivo de acordo com o intervalo de datas que representam.
-
No Painel de Navegação, selecione a tabela que tem registos para arquivar, prima CTRL+C e, em seguida, prima CTRL+V.
-
Na caixa Nome da Tabela , elimine as palavras Copiar De e acrescente um caráter de sublinhado e a palavra "arquivar" ao nome da tabela existente e, em seguida, clique em OK. Por exemplo, se a tabela original tiver o nome Transações , a tabela de arquivo tem o nome Transactions_archive.
-
Na caixa de diálogo Colar Tabela Como , em Opções de Colagem, selecioneApenas Estrutura.
Passo 2: Create uma consulta de acréscimo para copiar dados para a tabela de arquivo
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
Adicione a tabela com os registos que pretende arquivar.
-
Na janela de estrutura da consulta, faça duplo clique no asterisco (*) na tabela que acabou de adicionar. O nome da tabela e um asterisco aparecem na primeira coluna da grelha de estrutura da consulta.
Nota: O asterisco indica que a consulta deve incluir todos os campos da tabela na saída da consulta. Quando utiliza o asterisco, se os campos forem adicionados ou removidos da tabela, a saída da consulta ajusta-se em conformidade.
-
Na janela de estrutura da consulta, faça duplo clique no campo que pretende utilizar para especificar uma condição que os registos devem cumprir antes de os arquivar. Por exemplo, se a tabela Transações tiver um campo denominado Data de Entrada Dada e quiser arquivar todos os registos em que essa data tenha mais de um ano, faça duplo clique no campo e este aparece na coluna vazia seguinte da grelha de estrutura da consulta.
Repita este passo se quiser utilizar critérios com campos adicionais.
-
Utilize a linha Critérios para especificar critérios para os campos que acabou de adicionar. Por exemplo, pode especificar que a Data de Entrada Dada tem de ser anterior a 1 de janeiro de 2019 ao utilizar a expressão <#1/1/2019# na linha Critérios .
Se os valores dos critérios forem alterados sempre que arquivar, deve fazer com que a consulta peça entrada. Para tal, utilize um parâmetro na linha Critérios para que a consulta peça entrada. Para utilizar um parâmetro, utilize uma expressão como faria normalmente, mas em vez de um valor especificado, utilize uma breve pergunta entre parênteses retos. Por exemplo, pode utilizar a expressão <[Transações de arquivo concluídas antes de:], da seguinte forma:
Para obter mais informações sobre a utilização de parâmetros, veja o artigo Introdução às consultas.
Também poderá querer utilizar a linha ou para especificar condições alternativas. Para obter mais informações sobre como utilizar critérios, consulte o artigo Exemplos de critérios de consulta.
Sugestão: Se estiver a utilizar um campo de data para especificar critérios e quiser arquivar todos os registos mais antigos do que a data atual, introduza <Data() na linha Critérios do campo de data.
-
Execute um dos seguintes passos:
Se já tiver criado a tabela de arquivo, utilize uma consulta de acréscimo para adicionar os registos especificados a essa tabela:
-
No separador Estrutura, no grupo Tipo de Consulta, clique em Acrescentar.
-
Na caixa de diálogo Acrescentar , na caixa Nome da Tabela , selecione o nome da tabela de arquivo e, em seguida, clique em OK.
Na grelha de estrutura da consulta, é apresentada a linha Acrescentar A .
-
Desmarque a linha Acrescentar A para todos os campos que utilizou para especificar critérios. (Apenas o asterisco deve ter um valor para Acrescentar A.)
Se não tiver criado a tabela de arquivo, utilize uma consulta criar tabela para criar a tabela de arquivo com os registos especificados:
-
No separador Estrutura, no grupo Tipo de Consulta, clique em Criar Tabela.
-
Na caixa de diálogo Criar Tabela , na caixa Nome da Tabela , escreva o nome da tabela de arquivo e, em seguida, clique em OK.
-
-
Prima CTRL+S para guardar a consulta.
Passo 3: Create uma consulta eliminar para remover dados da tabela original
-
No separador Criar, no grupo Consultas, clique em Estrutura da Consulta.
-
Adicione a tabela com os registos que pretende arquivar.
-
Na janela de estrutura da consulta, faça duplo clique no asterisco (*) na tabela que acabou de adicionar. O nome da tabela e um asterisco aparecem na primeira coluna da grelha de estrutura da consulta.
-
Na janela de estrutura da consulta, faça duplo clique nos mesmos campos que utilizou para especificar uma condição na consulta de acréscimo.
-
Utilize a linha Critérios para especificar critérios para os campos que acabou de adicionar. Para obter mais informações sobre como utilizar critérios, consulte o artigo Exemplos de critérios de consulta.
Importante: Se a consulta acrescentar ou criar tabela tiver utilizado um parâmetro, certifique-se de que a consulta eliminar também o faz. Lembre-se também de que introduz o mesmo valor para ambas as consultas. Se introduzir valores de parâmetros diferentes, poderá perder dados. Para ajudar a evitar a perda de dados, considere utilizar um formulário para recolher os valores e fazer com que as consultas peçam ao formulário os valores de entrada. Para obter mais informações, consulte o artigo Introdução às consultas.
-
No separador Estrutura, no grupo Tipo de Consulta, clique em Eliminar.
A linha Eliminar é apresentada na grelha de estrutura da consulta.
-
Prima CTRL+S para guardar a consulta.
Passo 4: Create uma macro para executar consultas de acréscimo e eliminação
-
No separador Criar, no grupo Macros e Código, clique em Macro.
-
Clique na seta pendente junto a Adicionar Nova Ação e, em seguida, clique em AbrirQuery.
A ação OpenQuery é apresentada e apresenta os respetivos argumentos.
-
Na caixa Nome da Consulta , selecione a consulta (acrescentar ou criar tabela) que criou no Passo 2.
-
Clique na seta pendente junto a Adicionar Nova Ação e, em seguida, clique em AbrirQuery.
A ação OpenQuery é apresentada e apresenta os respetivos argumentos.
-
Na caixa Nome da Consulta , selecione a consulta eliminar que criou no Passo 3.
-
Prima Ctrl+S para guardar a macro.
Quando quiser arquivar registos, execute a macro.