Du kan holde Microsoft Access-databasene organisert 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 forklarer hvordan du bruker tre forskjellige 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 dataene nyttige 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 å beholde 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 bestemte hensyn for metoden.
Metode |
Beskrivelse |
Bruk når... |
Andre faktorer |
Lager regelmessig en arkivkopi av en bestemt tabell og erstatter tabellen med en ny, tom tabellkopi. |
Alle postene i en tabell oppfyller betingelsene du bruker til å bestemme om du vil arkivere. EKSEMPEL: Du har en tabell som lagrer ekstreme daglige temperaturer. Hvert år arkiverer du tabellen og starter på nytt med en tom. |
|
|
Lag regelmessig en arkivkopi av bakdatabasen, og erstatt deretter bakdatabasen med en ny, tom. Krever en delt database (en database som består av: 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. EKSEMPEL: Databasen består av flere tabeller med ulike typer meteorologiske data. Hvert år arkiverer du alle tabellene. |
|
|
Kjører regelmessig en spørring som velger postene for arkivering, og legger til dataene i en arkivtabell, og deretter kjører du en spørring for å velge de samme postene (fra den opprinnelige tabellen) og slette dem. |
Noen av postene i en tabell oppfyller betingelsen du bruker til å bestemme om du vil arkivere. EKSEMPEL: Du vil arkivere bibliotektransaksjoner (utsjekkinger) hvis innsjekket dato er minst ett år gammelt. |
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 tilhører «mange»-siden av en én-til-mange-relasjon ), kan du sannsynligvis trygt arkivere dem uten bekymring. Hvis oppføringene du vil arkivere, er overordnede poster (de tilhører «én»-siden av en én-til-mange-relasjon ), kan det hende at når du arkiverer de relaterte underordnede oppføringene:
-
Hindre deg i å slette «overordnede» poster. Dette kan føre til problemer hvis du allerede har lagt til «overordnede» poster i arkivtabellen.
- eller -
-
Bli "frittstående" – poster som tilhører en "overordnet" som ikke finnes. Dette kan føre til problemer med dataintegritet og funksjonalitet i databasen som bruker de frittstående postene.
Gjør følgende for å ta hensyn til referanseintegritet:
-
Finn ut hvilke underordnede poster som tilhører oppføringene 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 åpne transaksjoner på disse aktivaene, det vil si om aktivaene er sjekket ut, men ikke returnert.
-
Gjør ett av følgende:
-
Hvis «underordnede» poster alltid kan slettes på en trygg måte, må du kontrollere at relasjonen fremtvinger referanseintegritet, med gjennomgripende slettinger. Dette sikrer at alle relaterte underordnede poster slettes.
-
Hvis underordnede poster ikke alltid kan slettes trygt, bør 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ørringer (se inndelingen Flytt poster regelmessig 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.
-
Velg 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 gir kopien et navn som en kopi av den opprinnelige tabellen. -
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 regelmessig alle tabeller
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 på nytt hver gang du arkiverer. Hvis du vil arkivere bare gi nytt navn til den eksisterende bakdatabasen for å angi at den er et arkiv, og lagre 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.
-
Velg Tom database på Fanen Fil, og klikk deretter Opprett.
-
Lukk tabell1.
-
Klikk Access i gruppen Importer & kobling på fanen Eksterne data.
-
Velg Importer tabeller, spørringer, skjemaer, rapporter, makroer og moduler i gjeldende database 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 Importer objekter.
-
Velg Bare definisjon 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.
Erstatt bakdatabasen med en tom kopi
Gi først nytt navn til den eksisterende bakdatabasen for å angi at den nå er et arkiv. Deretter åpner du den tomme kopien og lagrer den ved hjelp av det opprinnelige bakdatabasenavnet.
-
Klikk fanen Fil , 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 boksen Lagre i (øverst i dialogboksen Lagre som).
-
Skriv inn navnet på den opprinnelige bakdatabasen i Filnavn-boksen .
-
Velg Access-database (*.accdb)i Filtype-boksen.
Flytt poster regelmessig til en arkivtabell
Dette er en prosess med fire trinn som krever en tom kopi av tabellen som inneholder postene du vil arkivere, opprette 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 presenteres nedenfor:
Trinn 1: Opprett en arkivtabell
Trinn 2: Opprett en tilføyingsspørring for å kopiere data til arkivtabellen
Trinn 3: Opprett en slettespørring for å fjerne data fra den opprinnelige tabellen
Trinn 4: Opprett en makro for å kjøre både tilføyings- og slettespørringer
Trinn 1: Opprett en arkivtabell
Hvis du vil beholde alle arkiverte poster i én tabell, gjør du dette trinnet én gang. Arkivtabellen du oppretter i dette trinnet, inneholder 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 å gjøre dette trinnet. Hvis du vil gjøre dette, går du 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 datointervallet de representerer.
-
Velg tabellen som inneholder poster som skal arkiveres, trykk CTRL+C i navigasjonsruten, og trykk deretter CTRL+V.
-
Slett ordene Kopier av i tabellnavn-boksen, og tilføy et understrekingstegn og ordet «arkiver» til det eksisterende tabellnavnet, og klikk deretter OK. Hvis den opprinnelige tabellen for eksempel heter Transaksjoner , får arkivtabellen navnet Transactions_archive.
-
Velg Bare struktur under Alternativer for innliming i dialogboksen Lim inn tabell som.
Trinn 2: Opprett en tilføyingsspørring for å kopiere data til arkivtabellen
-
I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.
-
Legg til tabellen med postene du vil arkivere.
-
Dobbeltklikk stjernen (*) i tabellen 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 stjernen, justeres spørringsutdataene tilsvarende hvis felt legges til eller fjernes fra tabellen.
-
Dobbeltklikk på feltet du vil bruke til å angi en betingelse som postene skal oppfylle før du arkiverer dem, i utformingsvinduet for spørringen. Hvis transaksjonstabellen for eksempel har et felt kalt Innsjekket dato, og du vil arkivere alle postene der denne datoen er mer enn ett år gammel, dobbeltklikker du på 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 du nettopp la til. Du kan for eksempel angi at innsjekket dato må være tidligere enn 1. januar 2019 ved hjelp av uttrykket <#01.01.2019# i Vilkår-raden .
Hvis vilkårsverdiene endres hver gang du arkiverer, bør du få spørringen til å be om inndata. Hvis du vil gjøre dette, bruker du en parameter i Vilkår-raden , slik at spørringen ber om inndata. Hvis du vil bruke en parameter, bruker du et uttrykk på vanlig måte, men i stedet for en angitt verdi, kan du bruke et kort spørsmål omgitt av hakeparenteser. Du kan for eksempel bruke uttrykket <[Arkivtransaksjoner fullført før:], slik som dette:
Hvis du vil ha mer informasjon om hvordan du bruker parametere, kan du se artikkelen Innføring i spørringer.
Du vil kanskje også bruke raden eller 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, angir du <Dato() 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 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 skal ha en verdi for Tilføy til.)
Hvis du ikke har opprettet arkivtabellen, kan du bruke 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: Opprett en slettespørring for å fjerne data fra den opprinnelige tabellen
-
I fanen Opprett i gruppen Spørringer, klikker du på Spørreutforming.
-
Legg til tabellen med postene du vil arkivere.
-
Dobbeltklikk stjernen (*) i tabellen 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 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 sørge for at slettespørringen også gjør det. Husk også at du angir den samme verdien for begge spørringene. Hvis du angir forskjellige parameterverdier, kan du miste data. Hvis du vil 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: Opprett 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 OpenQuery 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 OpenQuery vises og viser argumentene.
-
Velg slettespørringen du opprettet i trinn 3, i spørringsnavnboksen.
-
Trykk CTRL+S for å lagre makroen.
Når du vil arkivere poster, kjører du makroen.