Du kan holde Microsoft Access-databasene organiserte og håndterbare ved å arkivere gamle eller inaktive poster regelmessig. Du kan arkivere alle tabellene i en database, bestemte tabeller eller bare bestemte poster, for eksempel poster som er eldre enn en bestemt dato. Dette emnet beskriver hvordan du bruker tre ulike alternativer til å arkivere dataene i Access-databasen.
I denne artikkelen
Når bør du vurdere arkivering?
Når en database på datamaskinen inneholder data som du ikke har tenkt å bruke lenger, men du vil ha disse dataene tilgjengelig i tilfelle du trenger dem på et tidspunkt, eller for å oppfylle en policy for dataoppbevaring, er arkivering en god måte å beholde slike data på. Arkivering brukes også ofte til å holde data basert på en datobetingelse, for eksempel på slutten av en måned.
Måter å arkivere data på
Tabellen nedenfor viser metoder for å arkivere data, en beskrivelse av metoden, forklaring av når du bør bruke hver metode og andre spesifikke hensyn ved metoden.
Metode |
Beskrivelse |
Bruk når... |
Andre faktorer |
Lager med jevne mellomrom en arkivkopi av en bestemt tabell og erstatter denne tabellen med en ny, tom tabellkopi. |
Alle postene i en tabell oppfyller betingelsene du bruker til å bestemme om du vil arkivere. |
|
|
Lag regelmessig en arkivkopi av bakdatabasen, og erstatt deretter bakdatabasen med en ny, tom. Krever en delt database (en database som starter: en bakdatabasefil som inneholder alle tabellene, og en frontdatabasefil som inneholder alle de andre databaseobjektene). |
Alle postene i de fleste tabellene i en database oppfyller betingelsen du bruker til å bestemme om du vil arkivere. |
|
|
Kjører med jevne mellomrom en spørring som velger postene for arkivering, legger til dataene i en arkivtabell, og du kjører deretter en spørring for å velge de samme postene (fra den opprinnelige tabellen) og sletter dem. |
Noen av postene i en tabell oppfyller betingelsen du bruker til å bestemme om du vil arkivere. |
Advarsel!: Hvis du trenger å bruke parametere i spørringene, bør du opprette et skjema for å håndtere parameterne. Ellers risikerer du tap av data. |
Arbeide rundt referanseintegritet
Hvis postene du vil arkivere er relatert til poster i andre tabeller, må du kanskje omgå relasjonen. Hvis postene du vil arkivere er underordnede poster (de er på «mange»-siden i en én-til-mange-relasjon ), kan du sannsynligvis trygt arkivere dem uten bekymringer. Hvis postene du vil arkivere, er «overordnede» poster (de tilhører «én»-siden i en én-til-mange-relasjon ), kan følgende poster arkiveres når du arkiverer de relaterte «underordnede» postene:
-
Hindre deg i å slette de «overordnede» postene. Dette kan føre til problemer hvis du allerede har tilføyd de «overordnede» postene i arkivtabellen.
- eller -
-
Blir til «etter overordnede» – poster som tilhører en «overordnet» som ikke finnes. Dette kan føre til problemer med dataintegritet og funksjonalitet i databasen som bruker isolerte poster.
Gjør følgende for å ta hensyn til referanseintegritet:
-
Bestem hvilke underordnede poster som tilhører postene du vil arkivere. Hvis du for eksempel vil arkivere poster med aktiva som er lånt på et bibliotek, må du først avgjøre om det er noen transaksjoner åpne på disse eiendelene, det vil si om aktivaene er sjekket ut, men ikke returnert.
-
Gjør ett av følgende:
-
Hvis de underordnede postene alltid kan slettes trygt, må du kontrollere at relasjonen gjennomfører referanseintegritet, med gjennomgripende slettinger. Dette sikrer at alle relaterte «underordnede» poster blir slettet.
-
Hvis de underordnede postene ikke alltid kan slettes trygt, kan du vurdere å arkivere alle tabellene i databasen.
-
Opprett en spørring som velger «overordnede» poster som ikke har «underordnede» poster. Deretter bruker du den første spørringen til å opprette arkivspørringene (se delen Med jevne mellomrom flytte poster til en arkivtabell), i stedet for å bruke den «overordnede» tabellen.
-
Erstatte en tabell med jevne mellomrom
Hvis du vil arkivere alle dataene i en tabell, kan du med jevne mellomrom erstatte tabellen med en tom kopi.
Viktig!: Hvis tabellen du arkiverer er relatert til andre tabeller, må du kanskje omgå referanseintegritet.
-
Merk tabellene du vil arkivere i navigasjonsruten, trykk CTRL+C, og trykk deretter CTRL+V.
-
Velg Bare struktur under Alternativer for innliming i dialogboksen Lim inn tabell som,og klikk deretter OK.
Access navn nevner kopien som en kopi av det opprinnelige tabellnavnet. -
Høyreklikk den opprinnelige tabellen i navigasjonsruten, og klikk deretter Gi nytt navn på hurtigmenyen.
Gi tabellen et annet navn for å angi hva den inneholder, for eksempel DailyTemperatureExtremes_archive_2019. -
Høyreklikk den tomme kopien i navigasjonsruten, og klikk deretter Gi nytt navn på hurtigmenyen. Gi den nytt navn til den opprinnelige tabellen.
Erstatt alle tabeller med jevne mellomrom
Hvis du bruker en delt database, kan du med jevne mellomrom erstatte alle tabeller ved å erstatte bakdatabasen med en tom kopi.
Hvis du vil gjøre dette, må du først klargjøre den tomme kopien. Med mindre utformingen av databasen endres, kan du bruke denne tomme kopien hver gang du arkiverer. Hvis du vil arkivere, endrer du bare navnet på den eksisterende bakdatabasen for å angi at det er et arkiv, og lagrer den tomme kopien som den nye bakdatabasen.
Klargjøre en tom kopi av en bakdatabase
Først importerer du tabelldefinisjonene for alle tabellene i bakdatabasen.
-
Klikk Ny påFil-fanen,velg Tom database,og klikk deretter Opprett.
-
Lukk Tabell1.
-
Klikk Access i gruppenImporter kobling i & Eksterne data-fanen.
-
Velg Importertabeller, spørringer,skjemaer, rapporter, makroer og moduler til den gjeldende databasen i dialogboksen Hent eksterne data – Access-database, og klikk deretter Bla gjennom.
-
Velg bakdatabasen i dialogboksen Åpne fil. Klikk Åpne for å lukke dialogboksen Åpne fil, og klikk deretter OK.
-
Klikk Alternativer i dialogboksen Importerobjekter.
-
Velg Baredefinisjon under Importer tabeller.
-
Klikk Merk alt på Tabeller-fanen,klikk OK,og klikk deretter Lukk.
Legge til data i alle oppslagstabeller i den tomme kopien
Gjør følgende for hver oppslagstabell:
-
Koble til oppslagstabellen i den eksisterende bakdatabasen.
-
Opprett en tilføyingsspørring som legger til alle postene fra originalen i kopien.
Erstatte bakdatabasen med en tom kopi
Først endrer du navn på den eksisterende bakdatabasen for å angi at den nå er et arkiv. Deretter åpner du den tomme kopien, og lagrer den ved å bruke det opprinnelige navnet på bakdatabasen.
-
Klikk filfanen, og klikk deretter Lagre database som. Du kan bli bedt om å lukke alle åpne objekter. hvis det er det, klikker du OK. Dialogboksen Lagre som åpnes.
-
Kontroller at du lagrer filen på samme sted som den opprinnelige bakdatabasen, i dialogboksen Lagre i (øverst i dialogboksen Lagre som).
-
Skriv inn navnet på den opprinnelige bakdatabasen i Filnavn-boksen.
-
Velg Access-database(*.accdb) i Filtype-boksen.
Flytte poster til en arkivtabell med jevne mellomrom
Dette er en fire trinnsprosess som krever at du lager en tom kopi av tabellen som inneholder postene du vil arkivere, oppretter en tilføyingsspørring for å kopiere postene fra den opprinnelige tabellen til arkivtabellen, opprette en slettespørring for å fjerne de arkiverte postene fra den opprinnelige tabellen og til slutt opprette en makro for å kjøre begge spørringene som kan kjøres når du vil arkivere. Denne tilsynelatende komplekse prosessen kan være enkel hvis du følger trinnene i den rekkefølgen de er presentert nedenfor:
Trinn 1: Opprette en arkivtabell
Trinn 2: Opprette en tilføyingsspørring for å kopiere data til arkivtabellen
Trinn 3: Opprette en slettespørring for å fjerne data fra den opprinnelige tabellen
Trinn 4: Opprette en makro for å kjøre både tilføyings- og slettespørringer
Trinn 1: Opprette en arkivtabell
Hvis du vil beholde alle arkiverte poster i én tabell, gjør du dette trinnet én gang. Arkivtabellen som du oppretter i dette trinnet, vil inneholde alle de arkiverte postene.
Hvis du vil slette den gamle arkivtabellen når du oppretter en ny, kan du bruke en lag-tabell-spørring til å kopiere dataene til arkivtabellen i stedet for dette trinnet. Dette gjør du ved å gå til trinn 2.
Hvis du vil bruke en ny arkivtabell hver gang du arkiverer, men også beholde de gamle arkivtabellene, må du gi nytt navn til den gamle arkivtabellen før du oppretter en ny. Hvis du arkiverer basert på en dato, bør du vurdere å navngi de gamle arkivtabellene i henhold til datoområdet de representerer.
-
Merk tabellen som har poster å arkivere i navigasjonsruten, trykk CTRL+C, og trykk deretter CTRL+V.
-
Slett ordene Kopi av i Tabellnavn-boksen, og tilføy en understrekingstegn og ordet «arkiv» i det eksisterende tabellnavnet, og klikk deretter OK. Hvis for eksempel den opprinnelige tabellen heter Transaksjoner, kalles arkivtabellen Transactions_archive.
-
Velg Bare struktur under Alternativer for innliming i dialogboksen Lim inn tabell som.
Trinn 2: Opprette en tilføyingsspørring for å kopiere data til arkivtabellen
-
Klikk på Spørringsutforming i Spørringer-gruppen på Opprett-fanen.
-
Legg til tabellen med postene du vil arkivere.
-
Dobbeltklikk stjernen (*) i tabellen som du nettopp la til, i utformingsvinduet for spørringen. Tabellnavnet og en stjerne vises i den første kolonnen i utformingsrutenettet for spørringen.
Obs!: Stjernen angir at spørringen skal inkludere alle feltene fra tabellen i spørringsutdataene. Når du bruker en stjerne, justeres spørringsutdataene tilsvarende hvis feltene legges til eller fjernes fra tabellen.
-
Dobbeltklikk feltet du vil bruke til å angi en betingelse som postene skal oppfylle, i utformingsvinduet for spørringen, før du arkiverer dem. Hvis for eksempel Transaksjoner-tabellen har et felt kalt Sjekket inn dato,og du vil arkivere alle poster der denne datoen er mer enn en år gammel, dobbeltklikker du feltet, og det vises i den neste tomme kolonnen i utformingsrutenettet for spørringen.
Gjenta dette trinnet hvis du vil bruke vilkår med flere felt.
-
Bruk Vilkår-raden til å angi vilkår for feltene som du nettopp la til. Du kan for eksempel angi at innsjekket dato må være tidligere enn 1. januar 2019 ved hjelp av uttrykket <#1.01.2019# i Vilkår-raden.
Hvis vilkårsverdiene endres hver gang du arkiverer, bør du få spørringen til å be om inndata. Dette gjør du ved å bruke en parameter i Vilkår-raden, slik at spørringen ber om inndata. Hvis du vil bruke en parameter, bruker du et uttrykk som vanlig, men i stedet for en angitt verdi, bør du bruke et kort spørsmål i hakeparenteser. Du kan for eksempel bruke uttrykket <[Arkivtransaksjoner fullført før:]slik:
Hvis du vil ha mer informasjon om hvordan du bruker parametere, kan du se artikkelen Innføring i spørringer.
Du kan også bruke eller-raden til å angi alternative betingelser. Hvis du vil ha mer informasjon om bruk av vilkår, kan du se artikkelen Eksempler på spørringsvilkår.
Tips!: Hvis du bruker et datofelt til å angi vilkår, og du vil arkivere alle poster som er eldre enn gjeldende dato, skriver du<Date() i Vilkår-raden for datofeltet.
-
Gjør ett av følgende:
Hvis du allerede har opprettet arkivtabellen, bruker du en tilføyingsspørring til å legge til de angitte postene i denne tabellen:
-
Klikk kategorien Utforming, velg Vis/skjul-gruppen og klikk Tilføying.
-
Velg navnet på arkivtabellen i Tabellnavn-boksen i dialogboksen Tilføy, og klikk deretter OK.
I utformingsrutenettet for spørringen vises Tilføy til-raden.
-
Fjern Tilføy til-raden for alle felt du brukte til å angi vilkår. (Bare stjernen bør ha en verdi for Tilføy til.)
Hvis du ikke har opprettet arkivtabellen, bruker du en lag-tabell-spørring til å opprette arkivtabellen ved hjelp av de angitte postene:
-
Klikk Lag tabell i Spørringstype-gruppen på fanen Utforming.
-
Skriv inn navnet på arkivtabellen i Tabellnavn-boksen i dialogboksen Lag tabell, og klikk deretter OK.
-
-
Trykk CTRL+S for å lagre spørringen.
Trinn 3: Opprette en slettespørring for å fjerne data fra den opprinnelige tabellen
-
Klikk på Spørringsutforming i Spørringer-gruppen på Opprett-fanen.
-
Legg til tabellen med postene du vil arkivere.
-
Dobbeltklikk stjernen (*) i tabellen som du nettopp la til, i utformingsvinduet for spørringen. Tabellnavnet og en stjerne vises i den første kolonnen i utformingsrutenettet for spørringen.
-
Dobbeltklikk de samme feltene som du brukte til å angi en betingelse i tilføyingsspørringen, i utformingsvinduet for spørringen.
-
Bruk Vilkår-raden til å angi vilkår for feltene som du nettopp la til. Hvis du vil ha mer informasjon om bruk av vilkår, kan du se artikkelen Eksempler på spørringsvilkår.
Viktig!: Hvis tilføyings- eller lag-tabell-spørringen brukte en parameter, må du kontrollere at slettespørringen gjør det også. Husk også at du skriver inn den samme verdien for begge spørringene. Hvis du skriver inn andre parameterverdier, kan du miste data. For å hindre tap av data bør du vurdere å bruke et skjema til å samle inn verdiene, og få spørringene til å be skjemaet om inndataverdiene. Hvis du vil ha mer informasjon, kan du se artikkelen Innføring i spørringer.
-
Klikk Slett i Spørringstype-gruppen på Utforming-fanen.
Slett-raden vises i utformingsrutenettet for spørringen.
-
Trykk CTRL+S for å lagre spørringen.
Trinn 4: Opprette en makro for å kjøre både tilføyings- og slettespørringer
-
Klikk på Makro i gruppen Makroer og kode på Opprett-fanen.
-
Klikk rullegardinpilen ved siden av Legg til ny handling,og klikk deretter OpenQuery.
Handlingen ÅpneSpørring vises og viser argumentene.
-
Velg spørringen (tilføy eller lag tabell) som du opprettet i trinn 2, i spørringsnavnboksen.
-
Klikk rullegardinpilen ved siden av Legg til ny handling,og klikk deretter OpenQuery.
Handlingen ÅpneSpørring vises og viser argumentene.
-
Velg slettespørringen du opprettet i trinn 3, i Spørringsnavn-boksen.
-
Trykk CTRL+S for å lagre makroen.
Når du vil arkivere poster, kjører du makroen.