Når du enten hurtigt vil slette en masse data eller slette et sæt data regelmæssigt i en Access-skrivebordsdatabase, kan en slette- eller opdateringsforespørgsel være nyttig, fordi forespørgslerne gør det muligt at angive kriterier for hurtigt at finde og slette dataene. Du kan også spare tid ved at bruge en forespørgsel, fordi du kan genbruge en gemt forespørgsel.
Bemærk
Før du sletter alle data eller kører en sletteforespørgsel, skal du kontrollere, at du har en sikkerhedskopi af din Access-database på skrivebordet.
Hvis du kun vil slette nogle få poster, behøver du ikke en forespørgsel. Du skal blot åbne tabellen i dataarkvisning, vælge de felter (kolonner) eller poster (rækker), du vil slette, og derefter trykke på Delete.
Vigtig
Oplysningerne i denne artikel henvender sig til skrivebordsdatabaser. Du kan ikke bruge sletnings- eller opdateringsforespørgsler i Access-webapps.
Denne artikel indeholder
- Valg af forespørgselstype
- Brug af en sletteforespørgsel
- Opdatere en opdateringsforespørgsel
- Yderligere oplysninger
- Tip til fejlfinding
Valg af forespørgselstype
Du kan bruge enten en opdateringsforespørgsel eller en sletteforespørgsel til at slette data fra databasen. Vælg en forespørgsel baseret på oplysningerne i følgende tabel:
| Type af forespørgsel | Anvendelse | Resultater |
|---|---|---|
| Bruge en sletteforespørgsel | Hvis du vil fjerne hele poster (rækker) fra en tabel eller to relaterede tabeller samtidigt. Bemærk: Hvis posterne er placeret på "én"-siden af en én-til-mange-relation, kan det være nødvendigt at ændre relationen, før du kører sletteforespørgslen. Se afsnittet om at slette data fra relaterede tabeller. |
Sletteforespørgsler fjerner alle data i hvert felt, herunder den nøgleværdi, der gør en post entydig |
| Bruge en opdateringsforespørgsel | Sådan sletter du individuelle feltværdier fra en tabel. | Gør det nemmere at slette værdier ved at opdatere de eksisterende værdier til enten en null-værdi (dvs. ingen data) eller en streng af længden nul (et par dobbelte anførselstegn uden mellemrum mellem dem). |
Ting, der skal kontrolleres, før du bruger en forespørgsel til at slette data
Sørg for, at filen ikke er en skrivebeskyttet fil:
- Højreklik på Start , og klik på Åbn Windows Stifinder.
- Højreklik på databasefilen, og klik på Egenskaber.
- Se, om attributten Skrivebeskyttet er markeret.
Kontrollér, at du har de nødvendige tilladelser til at slette poster fra databasen. Hvis du ikke er sikker, kan du kontakte systemadministratoren eller databasedesigneren.
Sørg for, at du har aktiveret indhold i databasen. Access blokerer som standard alle handlingsforespørgsler (sletnings-, opdaterings- og tabeloprettelsesforespørgsler), medmindre du først har tillid til databasen. Du kan finde oplysninger om tillid til en database i afsnittet Forhindre, at deaktiveret tilstand blokerer en forespørgsel.
Bed andre brugere af databasen om at lukke alle tabeller, formularer, forespørgsler og rapporter, der bruger de data, du vil slette. Dette hjælper med at undgå låseovertrædelser.
Før du redigerer eller sletter poster, er det en god ide at lave en sikkerhedskopi af databasen , i tilfælde af at du vil fortryde ændringerne.
Tip
Hvis et stort antal brugere opretter forbindelse til databasen, skal du muligvis lukke databasen og derefter åbne den igen med udelt adgang .
Sådan åbnes en database med udelt adgang
- Klik på fanen >Filer, Åbn.
- Gå til databasen, og peg på den, klik på pilen ud for knappen Åbn , og klik derefter på Åbn med udelt adgang.
Sikkerhedskopiere databasen
- Klik på fanen Filer , og peg på Gem som.
- Klik på Gem database som, og klik på Sikkerhedskopiér database. Den oprindelige fil lukkes i Access, og der oprettes en sikkerhedskopi. Derefter genåbnes den oprindelige fil.
- Klik på Gem som , og angiv et navn og en placering til sikkerhedskopien, og klik på Gem.
Bemærk
Hvis du bruger en skrivebeskyttet database eller en database, der er oprettet i den tidligere version af Access, vises der muligvis en meddelelse om, at det ikke er muligt at oprette en sikkerhedskopi af databasen.
Hvis du vil tilbageføre en sikkerhedskopi, skal du lukke den oprindelige fil og omdøbe den, så sikkerhedskopien kan få navnet på den oprindelige version. Giv sikkerhedskopien navnet på den oprindelige version, og åbn den omdøbte sikkerhedskopi i Access.
Brug af en sletteforespørgsel
Hvis du vil oprette en sletteforespørgsel, skal du klikke på Forespørgselsdesigni gruppenForespørgsler under fanen Opret. Dobbeltklik på hver tabel, du vil slette poster fra, og klik derefter på Luk.
Tabellen vises som et vindue i den øverste del af forespørgselsgitteret. Dobbeltklik på stjernen (*) på listen over felter for at føje alle felterne i tabellen til designgitteret.
Brug af et bestemt kriterium i en sletteforespørgsel
Vigtig
Brug kriterier til kun at returnere de poster, du vil slette. Ellers fjerner sletteforespørgslen alle poster i tabellen.
Dobbeltklik på det felt, du vil angive som kriterier for sletning, angiv et af kriterierne i rækken Kriterier i forespørgselsdesigneren, og fjern derefter markeringen i afkrydsningsfeltet Vis for hvert kriteriefelt.
Et eksempel på, hvornår du muligvis vil bruge denne indstilling: Antag, at du vil fjerne alle ventende ordrer for en kunde. Hvis du kun vil finde disse poster, skal du føje felterne Kunde-id og Ordredato til forespørgselsdesigngitteret, hvorefter du angiver kundens id-nummer og den dato, hvor den pågældende kundes ordrer bliver ugyldige.
- Klik på Vis>dataarkvisning under fanen Design.
- Kontrollér, at forespørgslen returnerer de poster, du vil slette, og tryk derefter på Ctrl+S for at gemme forespørgslen.
- Dobbeltklik på forespørgslen i navigationsruden for at køre forespørgslen.
Opdatere en opdateringsforespørgsel
Bemærk
Du kan ikke bruge indstillingen opdateringsforespørgsel i en Access-webapp.
I dette afsnit beskrives det, hvordan du bruger en opdateringsforespørgsel til at slette individuelle felter fra tabeller. Husk, at kørsel af en opdateringsforespørgsel for at slette data ændrer de eksisterende værdier til enten NULL eller en streng af længden nul (et par dobbelte anførselstegn uden mellemrum) afhængigt af de kriterier, du angiver.
Klik på fanen Opret, og klik på Forespørgselsdesign i gruppen Forespørgsler.
Vælg den tabel, der indeholder de data, du vil slette (hvis tabellen er relateret, skal du vælge tabellen på en-siden af relationen), klik på Tilføj, og klik derefter på Luk.
Tabellen vises som et vindue i den øverste del af forespørgselsgitteret. Vinduet viser alle felterne i den markerede tabel.Dobbeltklik på stjernen (*) for at føje alle felterne i tabellen til designgitteret. Hvis alle tabelfelterne tilføjes, kan sletteforespørgslen fjerne hele poster (rækker) fra tabellen.
Du kan eventuelt angive kriterier for et eller flere felter i rækken Kriterier for designeren og derefter fjerne markeringen i afkrydsningsfeltet Vis for hvert kriteriefelt. Du kan finde flere oplysninger om brug af kriterier i tabellen Eksempelkriterier for udvælgelsesforespørgsler .Bemærk
Du kan bruge kriterier til kun at returnere de poster, du vil ændre. Ellers angives opdateringsforespørgslen til NULL for hver post i hvert af felterne i forespørgslen.
Klik på Vis i gruppen Resultater på fanen Design , og klik derefter på Dataarkvisning.
Kontrollér, at forespørgslen returnerer de poster, du vil angive som NULL eller en streng af længden nul (et par dobbelte anførselstegn uden mellemrum mellem dem (""").
Gentag trin 3-5 efter behov, og rediger felterne eller kriterierne, indtil forespørgslen kun returnerer de data, du vil slette, og tryk derefter på CTRL+S for at gemme forespørgslen.
Dobbeltklik på forespørgslen i navigationsruden for at køre forespørgslen.
Flere oplysninger
Slette data fra relaterede tabeller
Hvis du vil slette data fra flere relaterede tabeller, skal du aktivere indstillingerne Referentiel integritet og Kaskadevis sletning af relaterede poster for hver relation. Dette giver din forespørgsel mulighed for at slette data fra tabellerne på "en" og "mange" siden af relationen. Forberedelse til at slette relaterede data kræver bekræftelse af følgende:
- Afgør, hvilke poster der findes på en-siden af relationen, og hvilke der findes på mange-siden.
- Hvis du vil slette poster på en-siden af relationen og de relaterede poster på mange-siden, aktiverer du et regelsæt kaldet referentiel integritet og aktiverer overlappende sletninger. Trinnene i denne sektion forklarer referentiel integritet, og hvordan du udfører begge opgaver.
- Hvis du kun vil slette poster på "en"-siden af relationen, skal du først slette denne relation og derefter slette dataene.
Hvis du kun vil fjerne data på mange-siden af relationen, kan du oprette og køre din sletteforespørgsel uden at ændre relationen.
Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer for at finde ud af, hvilke poster der er placeret på "en" og "mange" siden af en relation. Fanen Relationer viser tabellerne i din database samt relationerne. Hver relation vises som en linje, der forbinder tabeller mellem felter.
I følgende figur vises en typisk relation. De fleste, om ikke alle, relationer i en database har en "en"-side og en "mange"-side. Relationsdiagrammet angiver "en"-siden med tallet én (1) og "mange"-siden med uendelighedssymbolet (∞).
Når du sletter poster på en-siden af relationen, sletter du også alle de relaterede poster på mange-siden af relationen. Men når du sletter poster på mange-siden af en relation, sletter du normalt ikke poster på en-siden.
Desuden gennemtvinger Access automatisk et sæt regler, der kaldes referentiel integritet. Disse regler sikrer, at fremmede nøgler i en database indeholder de korrekte værdier. En fremmed nøgle er en kolonne, hvis værdier svarer til værdierne i kolonnen med den primære nøgle i en anden tabel.
Rediger relationen
Følg kun disse trin, hvis du har brug for at slette data på "en" og "mange" siden af en relation.
Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.
Højreklik på relationen (linjen), der forbinder de tabeller, der er involveret i sletningen, og klik derefter på Rediger relation i genvejsmenuen.
I dialogboksen Rediger relationer skal du sikre, at afkrydsningsfeltet Gennemtving referentiel integritet er markeret.
Markér afkrydsningsfeltet Kaskadevis sletning af relaterede poster .
Bemærk
Indtil du deaktiverer denne egenskab igen, slettes alle de relaterede poster på mange-siden af relationen, hvis du sletter en post på "en"-siden af relationen.
Klik på OK, luk ruden Relationer , og gå derefter til det næste trin.
Slet en relation
- Hvis du ikke allerede har gjort det, skal du åbne ruden Relationer .
- Klik på Relationer i gruppen Relationer under fanen Databaseværktøjer.
Notér de felter, der er involveret i relationen, så du kan gendanne relationen, når du har slettet dine data. - Højreklik på relationen (linjen), der forbinder de tabeller, der er involveret i sletningen, og klik derefter på Slet i genvejsmenuen.
Bemærk
Hvis du vil gendanne relationen, skal du følge de forrige trin for at åbne ruden Relationer og derefter trække primær nøgle-feltet fra "en"-tabellen og slippe det i fremmed nøgle-feltet i "mange"-tabellen. Dialogboksen Rediger relation åbnes. Hvis den gamle relation gennemtvungen referentiel integritet, skal du vælge Gennemtving referentiel integritet og derefter klikke på Opret. Ellers skal du bare klikke på Opret.
Eksempelkriterier for udvælgelsesforespørgsler
I følgende tabel vises nogle eksempelkriterier, du kan bruge i udvælgelsesforespørgsler, når du vil sikre dig, at du kun sletter de data, du vil slette. Nogle af eksemplerne bruger jokertegn.
| Kriterier | Effekt |
|---|---|
| > 234 | Returnerer alle tal, der er større end 234. Hvis du vil finde alle tal, der er mindre end 234, skal du bruge < 234. |
| >= "Cajhen" | Returnerer alle poster fra og med Cajhen til slutningen af alfabetet. |
| Between #02-02-2010# And #01-12-2010# | Returnerer datoer fra 2-feb-2010 til 1-dec-2010 (ANSI-89). Hvis databasen bruger ANSI-92-jokertegn, skal du bruge enkelte anførselstegn (') i stedet for nummertegn (#). Eksempel: Mellem '02-02-2010' og '01-12-2010'. |
| Not "Tyskland" | Finder alle poster, hvor det nøjagtige indhold i feltet ikke er nøjagtigt lig med "Tyskland". Kriteriet returnerer poster, der indeholder tegn ud over "Tyskland", f.eks. "Tyskland (euro)" eller "Europa (Tyskland)". |
| Not "T*" | Finder alle de poster, der ikke begynder med T. Hvis databasen bruger ANSI-92-jokertegn, skal du indtaste procenttegn (%) i stedet for stjerne (*). |
| Not "*t" | Finder alle de poster, der ikke slutter på t. Hvis databasen bruger ANSI-92-jokertegn, skal du indtaste procenttegn (%) i stedet for stjerne (*). |
| In(Canada,USA) | Finder alle de poster på listen, der indeholder Canada eller USA. |
| Like "[A-D]*" | Finder alle poster, der starter med bogstaverne A til og med D, i et tekstfelt. Hvis der bruges ANSI-92-jokertegn i databasen, skal du bruge procenttegn (%) i stedet for stjerne (*). |
| Like "*ar*" | Finder alle poster, der inkluderer bogstavkombinationen "ar". Hvis der bruges ANSI-92-jokertegn i databasen, skal du bruge procenttegn (%) i stedet for stjerne (*). |
| Like "Maison Dewe?" | Finder alle de poster, der begynder med "Maison" og har en anden streng på fem bogstaver, hvoraf de fire første er "Dewe", og det sidste er ukendt. Hvis databasen bruger ANSI-92-jokertegn, skal du indtaste understregningstegn (_) i stedet for spørgsmålstegn (?). |
| #2/2/2010# | Finder alle posterne for 2. februar 2010. Hvis databasen bruger ANSI-92-jokertegn, skal du indsætte datoen i enkelte anførselstegn i stedet for nummertegn ('2/2/2010'). |
| < Date() - 30 | Bruger funktionen Date til at returnere alle datoer, der er mere end 30 dage gamle. |
| Date() | Bruger funktionen Date til at returnere alle poster, der indeholder dags dato. |
| Between Date() And DateAdd("M", 3, Date()) | Anvender funktionerne Date og DateAdd til at returnere alle poster mellem dags dato og tre måneder efter dags dato. |
| Is Null | Returnerer alle de poster, der indeholder en Null-værdi (tom eller ikke defineret). |
| Is Not Null | Returnerer alle de poster, der indeholder en værdi (som ikke er null). |
| "" | Returnerer alle de poster, der indeholder en streng af længden nul. Du kan bruge strenge af længden nul, når du skal tilføje en værdi i et obligatorisk felt, men du endnu ikke kender den faktiske værdi. Hvis et felt f.eks. I så fald skal du i stedet for at skrive et tal indtaste et par dobbelte anførselstegn uden mellemrum mellem dem ("""). |
Tip til fejlfinding
Hvorfor får jeg vist denne fejlmeddelelse, og hvordan retter jeg den?
Hvis du opretter en sletteforespørgsel med flere tabeller, og egenskaben UnikkePoster for forespørgslen er angivet til Nej, viser Access fejlmeddelelsen. Der kan ikke slettes fra de angivne tabeller , når du kører forespørgslen.
Hvis du vil rette problemet, skal du angive egenskaben UnikkePoster for forespørgslen til Ja.
- Åbn sletteforespørgslen i designvisning.
- Hvis forespørgslens egenskabsark ikke er åbent, skal du trykke på F4 for at åbne det.
- Klik på Forespørgselsdesigner for at få vist forespørgselsegenskaberne (i stedet for feltegenskaberne).
- I egenskabsarket til forespørgslen skal du finde egenskaben EntydigePoster og angive den til Ja.
Forhindre, at deaktiveret tilstand blokerer en forespørgsel
Hvis du åbner en skrivebordsdatabase, som du ikke har valgt at have tillid til, eller som ikke findes på en placering, du har tillid til, blokerer Access som standard alle handlingsforespørgsler fra at køre.
Hvis der ikke ser ud til at ske noget, når du kører en handlingsforespørgsel, skal du kontrollere, om følgende meddelelse vises på Access-statuslinjen:
Når du ser denne meddelelse, skal du udføre følgende trin for at aktivere det blokerede indhold:
- Klik på Aktivér indhold på meddelelseslinjen Sikkerhedsadvarsel, og kør forespørgslen igen.