U kunt uw Microsoft Access-databases georganiseerd en beheerbaar houden door oude of inactieve records periodiek te archiveren. U kunt alle tabellen in een database, specifieke tabellen of alleen specifieke records archiveren, bijvoorbeeld records die ouder zijn dan een bepaalde datum. In dit onderwerp wordt uitgelegd hoe u drie verschillende opties gebruikt om de gegevens in uw Access-database te archiveren.
In dit artikel
Wanneer moet u archiveren?
Wanneer een database op uw computer gegevens bevat die u niet meer wilt gebruiken, maar u deze gegevens bij de hand wilt houden als u deze op een bepaald moment nodig hebt of om te voldoen aan een beleid voor gegevensretentie, is archivering een goede manier om dergelijke gegevens te bewaren. Archivering wordt ook vaak gebruikt om gegevens te bewaren op basis van een datumvoorwaarde, zoals aan het einde van een maand.
Manieren om gegevens te archiveren
De volgende tabel bevat methoden voor het archiveren van gegevens, een beschrijving van de methode, uitleg over wanneer u elke methode moet gebruiken en andere specifieke overwegingen voor de methode.
Methode |
Beschrijving |
Gebruiken wanneer... |
Andere relevante informatie |
Maakt periodiek een archiefkopie van een bepaalde tabel en vervangt deze tabel door een nieuwe, lege tabelkopie. |
Alle records in een tabel voldoen aan de voorwaarden die u gebruikt om te bepalen of u wilt archiveren. VOORBEELD: U hebt een tabel waarin de dagelijkse temperatuur uitersten worden opgeslagen. Elk jaar archiveert u de tabel en begint u met een lege tabel. |
|
|
Maak periodiek een archiefkopie van de back-enddatabase en vervang vervolgens de back-enddatabase door een nieuwe, lege database. Vereist een gesplitste database (een database die bestaat uit: een back-enddatabasebestand dat alle tabellen bevat; en een front-enddatabasebestand dat alle andere databaseobjecten bevat). |
Alle records in de meeste tabellen in een database voldoen aan de voorwaarde die u gebruikt om te bepalen of u wilt archiveren. VOORBEELD: Uw database bestaat uit verschillende tabellen met verschillende soorten meteorologische gegevens. Elk jaar archiveert u alle tabellen. |
|
|
Voer periodiek een query uit waarmee de records voor archivering worden geselecteerd en de gegevens worden toegevoegd aan een archieftabel. Vervolgens voert u een query uit om dezelfde records (uit de oorspronkelijke tabel) te selecteren en te verwijderen. |
Sommige records in een tabel voldoen aan de voorwaarde die u gebruikt om te bepalen of u wilt archiveren. VOORBEELD: U wilt bibliotheektransacties (uitchecken) archiveren als de ingecheckte datum ten minste een jaar oud is. |
Waarschuwing: Als u parameters wilt gebruiken in uw query's, moet u een formulier maken om de parameters te verwerken. Anders riskeer je gegevensverlies. |
Werken aan referentiële integriteit
Als de records die u wilt archiveren gerelateerd zijn aan records in andere tabellen, moet u mogelijk de relatie omzeilen. Als de records die u wilt archiveren onderliggende records zijn (ze behoren tot de 'veel'-kant van een een-op-veel-relatie ), kunt u ze waarschijnlijk zonder zorgen archiveren. Als de records die u wilt archiveren bovenliggende records zijn (ze behoren tot de 'een'-kant van een een-op-veel-relatie ), kunnen hun gerelateerde 'onderliggende' records:
-
Voorkomen dat u de bovenliggende records verwijdert. Dit kan problemen veroorzaken als u de bovenliggende records al hebt toegevoegd aan de archieftabel.
- of -
-
Worden 'zwevende' records die behoren tot een 'bovenliggende' die niet bestaat. Dit kan problemen veroorzaken met de integriteit en functionaliteit van gegevens in uw database die gebruikmaakt van de 'zwevende' records.
Voer de volgende stappen uit om rekening te houden met referentiële integriteit:
-
Bepaal welke 'onderliggende' records behoren tot de records die u wilt archiveren. Als u bijvoorbeeld records wilt archiveren van assets die zijn geleend bij een bibliotheek, moet u eerst bepalen of er transacties zijn geopend voor die assets, dat wil gezegd, of de assets zijn uitgecheckt, maar niet zijn geretourneerd.
-
Ga op een van de volgende manieren te werk:
-
Als de onderliggende records altijd veilig kunnen worden verwijderd, moet u ervoor zorgen dat de relatie referentiële integriteit afdwingt, met trapsgewijze verwijderingen. Dit zorgt ervoor dat alle gerelateerde 'onderliggende' records worden verwijderd.
-
Als de onderliggende records niet altijd veilig kunnen worden verwijderd, kunt u overwegen alle tabellen in de database te archiveren.
-
Creatie een query die 'bovenliggende' records selecteert die geen onderliggende records hebben. Gebruik vervolgens die eerste query om uw archiefquery's te maken (zie de sectie Records periodiek verplaatsen naar een archieftabel), in plaats van de bovenliggende tabel te gebruiken.
-
Een tabel periodiek vervangen
Als u alle gegevens in een tabel wilt archiveren, kunt u de tabel periodiek vervangen door een lege kopie.
Belangrijk: Als de tabel die u archiveert gerelateerd is aan andere tabellen, moet u mogelijk referentiële integriteit omzeilen.
-
Selecteer in het navigatiedeelvenster de tabellen die u wilt archiveren, druk op Ctrl+C en druk vervolgens op Ctrl+V.
-
Selecteer in het dialoogvenster Tabel plakken als onder Plakopties de optie Alleen structuur en klik vervolgens op OK.
Access noemt de kopie als een kopie van de oorspronkelijke tabelnaam. -
Klik in het navigatiedeelvenster met de rechtermuisknop op de oorspronkelijke tabel en klik vervolgens op Naam wijzigen in het snelmenu.
Geef de tabel een andere naam om aan te geven wat deze bevat, zoals 'DailyTemperatureExtremes_archive_2019'. -
Klik in het navigatiedeelvenster met de rechtermuisknop op de lege kopie en klik vervolgens op Naam wijzigen in het snelmenu. Wijzig de naam van de tabel met de naam van de oorspronkelijke tabel.
Alle tabellen periodiek vervangen
Als u een gesplitste database gebruikt, kunt u alle tabellen periodiek vervangen door de back-enddatabase te vervangen door een lege kopie.
Om dit te doen, bereidt u eerst de lege kopie voor. Tenzij het ontwerp van uw database verandert, kunt u deze lege kopie telkens opnieuw gebruiken wanneer u een archiefbewerking uitvoert. Als u wilt archiveren, wijzigt u de naam van de bestaande back-enddatabase om aan te geven dat het een archief is en slaat u de lege kopie op als de nieuwe back-enddatabase.
Een lege kopie van een back-enddatabase voorbereiden
Importeer eerst de tabeldefinities voor alle tabellen in de back-enddatabase.
-
Klik op het tabblad Bestand op Nieuw, selecteer Lege database en klik vervolgens op Creatie.
-
Tabel1 sluiten.
-
Klik op het tabblad Externe gegevens in de groep Importeren & koppeling op Access.
-
Selecteer in het dialoogvenster Externe gegevens ophalen – Access-databasede optie Tabellen, query's, formulieren, rapporten, macro's en modules importeren in de huidige database en klik vervolgens op Bladeren.
-
Selecteer in het dialoogvenster Bestand openen de back-enddatabase. Klik op Openen om het dialoogvenster Bestand openen te sluiten en klik vervolgens op OK.
-
Klik in het dialoogvenster Objecten importeren op Opties.
-
Selecteer onder Tabellen importerende optie Alleen definitie.
-
Klik op het tabblad Tabellen op Alles selecteren, klik op OK en klik vervolgens op Sluiten.
Gegevens toevoegen aan opzoektabellen in de lege kopie
Voor elke opzoektabel voert u de volgende stappen uit:
-
Maak een koppeling naar de opzoektabel in de bestaande back-enddatabase.
-
Creatie een toevoegquery waarmee alle records van het origineel aan de kopie worden toegevoegd.
De back-enddatabase vervangen door een lege kopie
Wijzig eerst de naam van de bestaande back-enddatabase om aan te geven dat het nu een archief is. Open vervolgens de lege kopie en sla deze op met de naam van de oorspronkelijke back-enddatabase.
-
Klik op het tabblad Bestand en klik vervolgens op Database opslaan als. U wordt mogelijk gevraagd om alle geopende objecten te sluiten. klik op OK. Het dialoogvenster Opslaan als wordt geopend.
-
Controleer in het vak Opslaan in (bovenaan het dialoogvenster Opslaan als ) of u het bestand op dezelfde plaats opslaat als de oorspronkelijke back-enddatabase.
-
Voer in het vak Bestandsnaam de naam in van de oorspronkelijke back-enddatabase.
-
Selecteer in het vak Opslaan als de optie Access-database (*.accdb).
Records periodiek verplaatsen naar een archieftabel
Dit is een proces in vier stappen waarbij u een lege kopie moet maken van de tabel met de records die u wilt archiveren, een toevoegquery moet maken om de records van de oorspronkelijke tabel naar de archieftabel te kopiëren, een verwijderquery moet maken om de gearchiveerde records uit de oorspronkelijke tabel te verwijderen en ten slotte een macro te maken om beide query's uit te voeren die kunnen worden uitgevoerd wanneer u wilt archiveren. Dit schijnbaar complexe proces kan eenvoudig zijn als u de stappen volgt in de volgorde waarin ze hieronder worden weergegeven:
Stap 1: een archieftabel Creatie
Stap 2: Creatie een toevoegquery om gegevens naar de archieftabel te kopiëren
Stap 3: Creatie een verwijderquery om gegevens uit de oorspronkelijke tabel te verwijderen
Stap 4: een macro Creatie om zowel toevoeg- als verwijderquery's uit te voeren
Stap 1: een archieftabel Creatie
Als u al uw gearchiveerde records in één tabel wilt bewaren, voert u deze stap één keer uit. De archieftabel die u in deze stap maakt, bevat al uw gearchiveerde records.
Als u de oude archieftabel wilt verwijderen wanneer u een nieuwe maakt, kunt u in plaats van deze stap een tabelmaakquery gebruiken om de gegevens naar uw archieftabel te kopiëren. Ga hiervoor naar stap 2.
Als u een nieuwe archieftabel wilt gebruiken telkens wanneer u archiveert, maar ook de oude archieftabellen wilt behouden, wijzigt u de naam van de oude archieftabel voordat u een nieuwe maakt. Als u archiveert op basis van een datum, kunt u overwegen om uw oude archieftabellen een naam te geven op basis van het datumbereik dat ze vertegenwoordigen.
-
Selecteer in het navigatiedeelvenster de tabel met records die u wilt archiveren, druk op Ctrl+C en druk vervolgens op Ctrl+V.
-
Verwijder in het vak Tabelnaam de woorden Kopiëren van en voeg een onderstrepingsteken en het woord 'archief' toe aan de bestaande tabelnaam en klik vervolgens op OK. Als de oorspronkelijke tabel bijvoorbeeld Transacties heet, heeft de archieftabel de naam Transactions_archive.
-
Selecteer in het dialoogvenster Tabel plakken als onder Plakopties de optie Alleen structuur.
Stap 2: Creatie een toevoegquery om gegevens naar de archieftabel te kopiëren
-
Klik op het tabblad Maken in de groep Query's op Queryontwerp.
-
Voeg de tabel toe met de records die u wilt archiveren.
-
Dubbelklik in het queryontwerpvenster op het sterretje (*) in de tabel die u zojuist hebt toegevoegd. De tabelnaam en een sterretje worden weergegeven in de eerste kolom van het queryontwerpraster.
Opmerking: Het sterretje geeft aan dat de query alle velden uit de tabel in de queryuitvoer moet bevatten. Wanneer u het sterretje gebruikt en velden worden toegevoegd aan of verwijderd uit de tabel, wordt de query-uitvoer dienovereenkomstig aangepast.
-
Dubbelklik in het queryontwerpvenster op het veld dat u wilt gebruiken om een voorwaarde op te geven waaraan records moeten voldoen voordat u ze archiveert. Als de tabel Transacties bijvoorbeeld een veld heeft met de naam Ingecheckte datum en u alle records wilt archiveren waarvan die datum meer dan een jaar oud is, dubbelklikt u op het veld en wordt het weergegeven in de volgende lege kolom van het queryontwerpraster.
Herhaal deze stap als u criteria met aanvullende velden wilt gebruiken.
-
Gebruik de rij Criteria om criteria op te geven voor de velden die u zojuist hebt toegevoegd. U kunt bijvoorbeeld opgeven dat de ingecheckte datum eerder moet zijn dan 1 januari 2019 met behulp van de expressie <#1/1/2019# in de rij Criteria .
Als uw criteriawaarden telkens veranderen wanneer u archiveert, moet u de query om invoer vragen. Hiervoor gebruikt u een parameter in de rij Criteria , zodat de query om invoer vraagt. Als u een parameter wilt gebruiken, gebruikt u een expressie zoals u gewend bent, maar gebruik in plaats van een opgegeven waarde een korte vraag tussen vierkante haken. U kunt bijvoorbeeld de expressie gebruiken<[Archieftransacties die eerder zijn voltooid:], zoals:
Zie het artikel Inleiding tot query's voor meer informatie over het gebruik van parameters.
U kunt ook de rij of gebruiken om alternatieve voorwaarden op te geven. Zie het artikel Voorbeelden van querycriteria voor meer informatie over het gebruik van criteria.
Tip: Als u een datumveld gebruikt om criteria op te geven en u alle records wilt archiveren die ouder zijn dan de huidige datum, voert u <Date() in de rij Criteria voor het datumveld in.
-
Ga op een van de volgende manieren te werk:
Als u de archieftabel al hebt gemaakt, gebruikt u een toevoegquery om de opgegeven records aan die tabel toe te voegen:
-
Klik op het tabblad Ontwerp in de groep Querytype op Toevoegen.
-
Selecteer in het dialoogvenster Toevoegen in het vak Tabelnaam de naam van de archieftabel en klik op OK.
In het queryontwerpraster wordt de rij Toevoegen aan weergegeven.
-
Wis de rij Toevoegen aan voor velden die u hebt gebruikt om criteria op te geven. (Alleen het sterretje moet een waarde hebben voor Toevoegen aan.)
Als u de archieftabel niet hebt gemaakt, gebruikt u een tabelmaakquery om de archieftabel te maken met behulp van de opgegeven records:
-
Klik op het tabblad Ontwerp in de groep Querytype op Tabel maken.
-
Typ in het dialoogvenster Tabel maken in het vak Tabelnaam de naam van de archieftabel en klik op OK.
-
-
Druk op Ctrl+S om de query op te slaan.
Stap 3: Creatie een verwijderquery om gegevens uit de oorspronkelijke tabel te verwijderen
-
Klik op het tabblad Maken in de groep Query's op Queryontwerp.
-
Voeg de tabel toe met de records die u wilt archiveren.
-
Dubbelklik in het queryontwerpvenster op het sterretje (*) in de tabel die u zojuist hebt toegevoegd. De tabelnaam en een sterretje worden weergegeven in de eerste kolom van het queryontwerpraster.
-
Dubbelklik in het queryontwerpvenster op dezelfde velden die u hebt gebruikt om een voorwaarde op te geven in de toevoegquery.
-
Gebruik de rij Criteria om criteria op te geven voor de velden die u zojuist hebt toegevoegd. Zie het artikel Voorbeelden van querycriteria voor meer informatie over het gebruik van criteria.
Belangrijk: Als de toevoeg- of tabelmaakquery een parameter heeft gebruikt, moet u ervoor zorgen dat uw verwijderquery dit ook doet. Vergeet ook niet dat u voor beide query's dezelfde waarde invoert. Als u verschillende parameterwaarden invoert, gaan er mogelijk gegevens verloren. Als u gegevensverlies wilt voorkomen, kunt u overwegen om een formulier te gebruiken om de waarden te verzamelen en de query's te laten vragen naar de invoerwaarden in het formulier. Zie het artikel Inleiding tot query's voor meer informatie.
-
Klik op het tabblad Ontwerp in de groep Querytype op Verwijderen.
De rij Verwijderen wordt weergegeven in het queryontwerpraster.
-
Druk op Ctrl+S om de query op te slaan.
Stap 4: een macro Creatie om zowel toevoeg- als verwijderquery's uit te voeren
-
Klik op het tabblad Maken in de groep Macro's en code op Macro.
-
Klik op de vervolgkeuzepijl naast Nieuwe actie toevoegen en klik vervolgens op OpenenQuery.
De actieQuery openen wordt weergegeven en de argumenten worden weergegeven.
-
Selecteer in het vak Querynaam de query (toevoegen of tabel maken) die u in stap 2 hebt gemaakt.
-
Klik op de vervolgkeuzepijl naast Nieuwe actie toevoegen en klik vervolgens op OpenenQuery.
De actieQuery openen wordt weergegeven en de argumenten worden weergegeven.
-
Selecteer in het vak Querynaam de verwijderquery die u in stap 3 hebt gemaakt.
-
Druk op Ctrl+S om de macro op te slaan.
Wanneer u records wilt archiveren, voert u de macro uit.