Du kan holde dine Microsoft Access-databaser organiseret og håndterbare ved med jævne mellemrum at arkivere gamle eller inaktive poster. Du kan arkivere alle tabellerne i en database, bestemte tabeller eller kun bestemte poster – f.eks. poster, der er ældre end en bestemt dato. I dette emne forklares det, hvordan du kan bruge tre forskellige indstillinger til at arkivere dataene i din Access-database.
I denne artikel
Hvornår skal du overveje at arkivere?
Når en database på computeren indeholder data, som du ikke har planer om at bruge længere, men du vil holde disse data lige ved hånden, hvis du har brug for dem på et tidspunkt eller for at overholde en politik for dataopbevaring, er arkivering en god måde at bevare disse data på. Arkivering bruges også ofte til at bevare data baseret på en datobetingelse, f.eks. i slutningen af en måned.
Måder at arkivere data på
I følgende tabel vises metoder til at arkivere data, en beskrivelse af metoden, forklaring af, hvornår du skal bruge hver metode, og andre specifikke overvejelser i forbindelse med metoden.
Metode |
Beskrivelse |
Bruges, når... |
Andre overvejelser |
Opretter med jævne mellemrum en arkivkopi af en bestemt tabel og erstatter den pågældende tabel med en ny, tom tabelkopi. |
Alle posterne i en tabel opfylder de betingelser, du bruger til at afgøre, om du vil arkivere. EKSEMPEL: Du har et bord, der lagrer daglige temperatur ekstremer. Hvert år arkiverer du tabellen og starter forfra med en tom. |
|
|
Opret med jævne mellemrum en arkivkopi af back end-databasen, og erstat derefter back end-databasen med en ny, tom. Kræver en opdelt database (en database, der omfatter: en back end-databasefil, der indeholder alle tabellerne, og en front end-databasefil, der indeholder alle de andre databaseobjekter). |
Alle posterne i de fleste tabeller i en database opfylder den betingelse, du bruger til at afgøre, om du vil arkivere. EKSEMPEL: Din database består af flere tabeller med forskellige slags meteorologiske data. Hvert år arkiverer du alle tabellerne. |
|
|
Kører med jævne mellemrum en forespørgsel, der vælger posterne til arkivering, og føjer dataene til en arkivtabel, og du kører derefter en forespørgsel for at vælge de samme poster (fra den oprindelige tabel) og slette dem. |
Nogle af posterne i en tabel opfylder den betingelse, du bruger til at afgøre, om du vil arkivere. EKSEMPEL: Du vil arkivere bibliotekstransaktioner (udtjekninger), hvis datoen for indtjekning er mindst et år gammelt. |
Advarsel!: Hvis du har brug for at bruge parametre i dine forespørgsler, skal du oprette en formular til at håndtere parametrene. Ellers risikerer du tab af data. |
Arbejde med referentiel integritet
Hvis de poster, du vil arkivere, er relateret til poster i andre tabeller, skal du muligvis omgå relationen. Hvis de poster, du vil arkivere, er "underordnede" poster (de tilhører "mange"-siden af en en-til-mange-relation), kan du sikkert arkivere dem uden bekymring. Hvis de poster, du vil arkivere, er "overordnede" poster (de tilhører en-siden af en en-til-mange-relation), kan deres relaterede "underordnede" poster, når du arkiverer dem, muligvis:
-
Forhindrer dig i at slette de "overordnede" poster. Dette kan medføre problemer, hvis du allerede har føjet de "overordnede" poster til arkivtabellen.
- Eller -
-
Bliver til "horeunger" – poster, der tilhører en "overordnet", der ikke findes. Dette kan medføre problemer med dataintegritet og -funktionalitet i databasen, der bruger de "uafhængige" poster.
Benyt følgende fremgangsmåde for at tage højde for referentiel integritet:
-
Fastlæg, hvilke underordnede poster der hører til de poster, du vil arkivere. Hvis du f.eks. vil arkivere poster over aktiver, der udlånes i et bibliotek, skal du først afgøre, om der er åbne transaktioner på disse aktiver, dvs. om aktiverne er tjekket ud, men ikke returneret.
-
Benyt en af følgende fremgangsmåder:
-
Hvis de "underordnede" poster altid kan slettes sikkert, skal du kontrollere, at relationen gennemtvinger referentiel integritet med overlappende sletninger. Dette sikrer, at alle relaterede "underordnede" poster slettes.
-
Hvis de "underordnede" poster ikke altid kan slettes sikkert, kan du overveje at arkivere alle tabellerne i databasen.
-
Create en forespørgsel, der vælger "overordnede" poster, der ikke har "underordnede" poster. Brug derefter den første forespørgsel til at oprette dine arkivforespørgsler (se afsnittet Flyt med jævne mellemrum poster til en arkivtabel) i stedet for at bruge den "overordnede" tabel.
-
Erstatte en tabel med jævne mellemrum
Hvis du vil arkivere alle dataene i en tabel, kan du med jævne mellemrum erstatte tabellen med en tom kopi.
Vigtigt!: Hvis den tabel, du arkiverer, er relateret til andre tabeller, kan det være nødvendigt at omgå referentiel integritet.
-
Markér de tabeller, du vil arkivere, i navigationsruden, tryk på Ctrl+C, og tryk derefter på Ctrl+V.
-
I dialogboksen Indsæt tabel som under Indstillinger for Sæt ind skal du vælge Kun struktur og derefter klikke på OK.
Access navngiver kopien som en kopi af det oprindelige tabelnavn. -
Højreklik på den oprindelige tabel i navigationsruden, og klik derefter på Omdøb i genvejsmenuen.
Giv tabellen et andet navn for at angive, hvad den indeholder, f.eks. "DailyTemperatureExtremes_archive_2019". -
Højreklik på den tomme kopi i navigationsruden, og klik derefter på Omdøb i genvejsmenuen. Omdøb den med den oprindelige tabels navn.
Erstatte alle tabeller med jævne mellemrum
Hvis du bruger en opdelt database, kan du med jævne mellemrum erstatte alle tabeller ved at erstatte back end-databasen med en tom kopi.
Det gør du ved først at forberede den tomme kopi. Medmindre designet af databasen ændres, kan du genbruge denne tomme kopi, hver gang du arkiverer. Hvis du vil arkivere, skal du blot omdøbe den eksisterende back end-database for at angive, at det er et arkiv, og gemme den tomme kopi som den nye back-end-database.
Forberede en tom kopi af en back-end-database
Importér først tabeldefinitionerne for alle tabellerne i back end-databasen.
-
På fanen Filer skal du klikke på Ny, vælge Tom database og derefter klikke på Create.
-
Luk Tabel1.
-
Klik på Access i gruppen Importér & sammenkæd under fanen Eksterne data.
-
I dialogboksen Hent eksterne data – Access-database skal du vælge Importér tabeller, forespørgsler, formularer, rapporter, makroer og moduler til den aktuelle database og derefter klikke på Gennemse.
-
Vælg back end-databasen i dialogboksen Åbn fil . Klik på Åbn for at lukke dialogboksen Åbn fil , og klik derefter på OK.
-
Klik på Indstillinger i dialogboksen Importér objekter.
-
Under Importér tabeller skal du vælge Kun definition.
-
Klik på Markér alt under fanen Tabeller, klik på OK, og klik derefter på Luk.
Føje data til opslagstabeller i den tomme kopi
Gør følgende for hver opslagstabel:
-
Opret en kæde til opslagstabellen i den eksisterende back end-database.
-
Create en tilføjelsesforespørgsel, der føjer alle poster fra originalen til kopien.
Erstatte back end-databasen med en tom kopi
Omdøb først den eksisterende back end-database for at angive, at det nu er et arkiv. Åbn derefter den tomme kopi, og gem den ved hjælp af det oprindelige back end-databasenavn.
-
Klik på fanen Filer , og klik derefter på Gem database som. Du bliver muligvis bedt om at lukke alle åbne objekter. Hvis det er tilfældet, skal du klikke på OK. Dialogboksen Gem som åbnes.
-
I feltet Gem i (øverst i dialogboksen Gem som ) skal du sørge for, at du gemmer filen på samme sted som den oprindelige back end-database.
-
Skriv navnet på den oprindelige back end-database i feltet Filnavn .
-
I feltet Filtype skal du vælge Access-database (*.accdb).
Flytte poster med jævne mellemrum til en arkivtabel
Dette er en proces i fire trin, der kræver, at du opretter en tom kopi af den tabel, der indeholder de poster, du vil arkivere, oprette en tilføjelsesforespørgsel for at kopiere posterne fra den oprindelige tabel til arkivtabellen, oprette en slet søgning til at fjerne de arkiverede poster fra den oprindelige tabel og til sidst oprette en makro til at køre begge forespørgsler, der kan køres, når du vil arkivere. Denne tilsyneladende komplekse proces kan være nem, hvis du følger trinnene i den rækkefølge, de præsenteres i nedenfor:
Trin 2: Create en tilføjelsesforespørgsel for at kopiere data til arkivtabellen
Trin 3: Create en sletteforespørgsel for at fjerne data fra den oprindelige tabel
Trin 4: Create en makro til at køre både tilføjelses- og sletteforespørgsler
Trin 1: Create en arkivtabel
Hvis du vil gemme alle dine arkiverede poster i én tabel, skal du udføre dette trin én gang. Den arkivtabel, du opretter i dette trin, indeholder alle dine arkiverede poster.
Hvis du vil slette din gamle arkivtabel, når du opretter en ny, i stedet for at udføre dette trin, kan du bruge en opret-tabel-forespørgsel til at kopiere dataene til arkivtabellen. Gå til trin 2 for at gøre dette.
Hvis du vil bruge en ny arkivtabel, hver gang du arkiverer, men også beholde dine gamle arkivtabeller, skal du omdøbe den gamle arkivtabel, før du opretter en ny. Hvis du arkiverer baseret på en dato, bør du overveje at navngive dine gamle arkivtabeller i henhold til det datointerval, de repræsenterer.
-
I navigationsruden skal du markere den tabel, der indeholder poster, der skal arkiveres, trykke på Ctrl+C og derefter trykke på Ctrl+V.
-
I feltet Tabelnavn skal du slette ordene Kopi af og føje et understregningstegn og ordet "arkiv" til det eksisterende tabelnavn og derefter klikke på OK. Hvis den oprindelige tabel f.eks. hedder Transaktioner , navngives arkivtabellen Transactions_archive.
-
I dialogboksen Indsæt tabel som under Indstillinger for Sæt ind skal du vælge Kun struktur.
Trin 2: Create en tilføjelsesforespørgsel for at kopiere data til arkivtabellen
-
Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.
-
Tilføj tabellen med de poster, du vil arkivere.
-
Dobbeltklik på stjernen (*) i forespørgselsdesignvinduet i den tabel, du lige har tilføjet. Tabelnavnet og en stjerne vises i den første kolonne i forespørgselsdesigngitteret.
Bemærk!: Stjernen angiver, at forespørgslen skal medtage alle felterne fra tabellen i forespørgselsresultatet. Når du bruger stjernen, justeres forespørgselsresultatet tilsvarende, hvis felter tilføjes eller fjernes fra tabellen.
-
Dobbeltklik på det felt, du vil bruge til at angive en betingelse, som posterne skal opfylde, før du arkiverer dem, i forespørgselsdesignvinduet. Hvis tabellen Transaktioner f.eks. har et felt med navnet Tjekket ind-dato, og du vil arkivere alle poster, hvor den pågældende dato er mere end et år gammel, skal du dobbeltklikke på feltet, og det vises i den næste tomme kolonne i forespørgselsdesigngitteret.
Gentag dette trin, hvis du vil bruge kriterier med flere felter.
-
Brug rækken Kriterier til at angive kriterier for de felter, du lige har tilføjet. Du kan f.eks. angive, at Datoen tjekket ind skal være tidligere end den 1. januar 2019 ved hjælp af udtrykket <#01-01-2019# i rækken Kriterier .
Hvis dine kriterieværdier ændres, hver gang du arkiverer, skal du bede forespørgslen om input. For at gøre dette skal du bruge en parameter i rækken Kriterier , så forespørgslen beder om input. Hvis du vil bruge en parameter, skal du bruge et udtryk, som du normalt ville gøre, men i stedet for en angivet værdi skal du bruge et kort spørgsmål omgivet af kantede parenteser. Du kan f.eks. bruge udtrykket <[Arkivér transaktioner, der er udført før:], således:
Du kan få mere at vide om brug af parametre i artiklen Introduktion til forespørgsler.
Du kan også bruge rækken eller til at angive alternative betingelser. Du kan finde flere oplysninger om brug af kriterier i artiklen Eksempler på forespørgselskriterier.
Tip!: Hvis du bruger et datofelt til at angive kriterier, og du vil arkivere alle poster, der er ældre end dags dato, skal du angive <Dato() i rækken Kriterier for datofeltet.
-
Benyt en af følgende fremgangsmåder:
Hvis du allerede har oprettet arkivtabellen, skal du bruge en tilføjelsesforespørgsel til at føje de angivne poster til den pågældende tabel:
-
På fanen Design i gruppen Forespørgselstype klikker du Tilføj.
-
Vælg navnet på arkivtabellen i feltet Tabelnavn i dialogboksen Tilføj, og klik derefter på OK.
Rækken Føj til vises i forespørgselsdesigngitteret.
-
Fjern markeringen i rækken Føj til for alle felter, du har brugt til at angive kriterier. (Kun stjernen skal have en værdi for Føj til).
Hvis du ikke har oprettet arkivtabellen, kan du bruge en tabeloprettelsesforespørgsel til at oprette arkivtabellen ved hjælp af de angivne poster:
-
Klik på Tabeloprettelse i gruppen Forespørgselstype under fanen Design.
-
Skriv navnet på arkivtabellen i feltet Tabelnavn i dialogboksen Tabeloprettelse, og klik derefter på OK.
-
-
Tryk på Ctrl+S for at gemme forespørgslen.
Trin 3: Create en sletteforespørgsel for at fjerne data fra den oprindelige tabel
-
Klik på Forespørgselsdesign i gruppen Forespørgsler under fanen Opret.
-
Tilføj tabellen med de poster, du vil arkivere.
-
Dobbeltklik på stjernen (*) i forespørgselsdesignvinduet i den tabel, du lige har tilføjet. Tabelnavnet og en stjerne vises i den første kolonne i forespørgselsdesigngitteret.
-
Dobbeltklik på de samme felter, som du brugte til at angive en betingelse i tilføjelsesforespørgslen, i forespørgselsdesignvinduet.
-
Brug rækken Kriterier til at angive kriterier for de felter, du lige har tilføjet. Du kan finde flere oplysninger om brug af kriterier i artiklen Eksempler på forespørgselskriterier.
Vigtigt!: Hvis tilføjelses- eller tabeloprettelsesforespørgslen har brugt en parameter, skal du sørge for, at sletteforespørgslen også gør det. Husk også, at du angiver den samme værdi for begge forespørgsler. Hvis du angiver forskellige parameterværdier, kan du miste data. For at forhindre datatab kan du overveje at bruge en formular til at indsamle værdierne og få forespørgslerne til at bede formularen om inputværdierne. Du kan få mere at vide i artiklen Introduktion til forespørgsler.
-
Klik på Slet i gruppen Forespørgselstype under fanen Design.
Rækken Slet vises i forespørgselsgitteret.
-
Tryk på Ctrl+S for at gemme forespørgslen.
Trin 4: Create en makro til at køre både tilføjelses- og sletteforespørgsler
-
Klik på Makro i gruppen Makroer og kode på fanen Opret.
-
Klik på rullepilen ud for Tilføj ny handling, og klik derefter på ÅbnForespørgsel.
Handlingen ÅbnForespørgsel vises og viser argumenterne.
-
I feltet Forespørgselsnavn skal du vælge den (tilføjelses- eller tabeloprettelsesforespørgsel), du oprettede i trin 2.
-
Klik på rullepilen ud for Tilføj ny handling, og klik derefter på ÅbnForespørgsel.
Handlingen ÅbnForespørgsel vises og viser argumenterne.
-
I feltet Forespørgselsnavn skal du vælge den sletteforespørgsel, du oprettede i trin 3.
-
Tryk på Ctrl+S for at gemme makroen.
Når du vil arkivere poster, skal du køre makroen.