Hvis du enten hurtigt vil slette mange data eller slette et sæt data med jævne mellemrum 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. Brug af en forespørgsel kan også være en tidsbesparende, 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, markere de felter (kolonner) eller poster (rækker), du vil slette, og derefter trykke på Delete.
Vigtigt!: Oplysningerne i denne artikel er kun beregnet til brug sammen med skrivebordsdatabaser. Du kan ikke bruge slette- eller opdateringsforespørgsler i Access-webapps.
I denne artikel
Vælge en 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å detaljerne i følgende tabel:
Forespørgselstype |
Anvendelse |
Resultater |
---|---|---|
Brug en sletteforespørgsel |
Sådan fjernes hele poster (rækker) fra en tabel eller fra to relaterede tabeller samtidigt. Bemærk!: Hvis posterne er placeret på en-siden af en en til mange-relation, kan det være nødvendigt at ændre relationen, før du kører sletteforespørgslen. Se afsnittet om sletning af data fra relaterede tabeller. |
Sletteforespørgsler fjerner alle data i hvert felt, herunder den nøgleværdi, der gør en post entydig |
Brug 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, du skal kontrollere, 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 valgt.
-
-
Kontrollér, at du har de nødvendige tilladelser til at slette poster fra databasen. Hvis du ikke er sikker, skal du kontakte systemadministratoren eller databasedesigneren.
-
Sørg for, at du har aktiveret indhold i databasen. Som standard blokerer Access alle handlingsforespørgsler (slette, opdatere og tabeloprettelsesforespørgsler), medmindre du først har tillid til databasen. Du kan få mere at vide om, hvordan du har tillid til en database, i afsnittet Stop deaktiveret tilstand i at blokere 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åsefejl.
-
Før du redigerer eller sletter poster, er det en god ide at oprette en sikkerhedskopi af databasen , hvis 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 og peg på databasen, klik på pilen ud for knappen Åbn , og klik derefter på Åbn med udelt adgang.
Sikkerhedskopiér databasen
-
Klik på fanen Filer , 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, får du 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ørgselsdesign i gruppen Forespørgsler under fanen Opret. Dobbeltklik på hver tabel, hvorfra du vil slette poster, og klik derefter på Luk.
Tabellen vises som et vindue i den øverste del af forespørgselsdesigngitteret. På listen over felter skal du dobbeltklikke på stjernen (*) for at føje alle felterne i tabellen til designgitteret.
Brug af et bestemt kriterium i en sletteforespørgsel
Vigtigt!: 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 måske 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, og derefter skal du angive kundens id-nummer og datoen, hvor kundens ordrer blev ugyldige.
-
På fanen Design skal du klikke på Vis > Dataarkvisning.
-
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 forklares det, hvordan du kan bruge en opdateringsforespørgsel til at slette individuelle felter fra tabeller. Husk, at hvis du kører en opdateringsforespørgsel for at slette data, ændres de eksisterende værdier til enten NULL eller en tom streng (et par dobbelte anførselstegn uden mellemrum mellem), 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), klikke på Tilføj og derefter klikke på Luk.
Tabellen vises som et vindue i den øverste del af forespørgselsdesigngitteret. I vinduet vises alle felterne i den valgte tabel.
-
Dobbeltklik på stjernen (*) for at føje alle felterne i tabellen til designgitteret. Hvis du tilføjer alle tabelfelterne, kan sletteforespørgslen fjerne hele poster (rækker) fra tabellen.
Du kan også angive kriterier for et eller flere felter i rækken Kriterier i designeren og derefter fjerne markeringen i afkrydsningsfeltet Vis for hvert kriteriefelt. Du kan få mere at vide 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 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 til NULL eller en tom streng (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
Rediger relationen
Følg kun disse trin, når du har brug for at slette data på en- og "mange"-siderne 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 dig, at afkrydsningsfeltet Gennemtving referentiel integritet er markeret.
-
Markér afkrydsningsfeltet Kaskadevis sletning af relaterede poster .
Bemærk!: Indtil du deaktiverer denne egenskab igen, vil sletning af en post på en-siden af relationen slette alle de relaterede poster på mange-siden af relationen.
-
Klik på OK, luk ruden Relationer , og gå derefter til 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å den relation (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 vises. Hvis den gamle relation gennemtvinger referentiel integritet, skal du vælge Gennemtving referentiel integritet og derefter klikke på Opret. Ellers skal du blot klikke på Opret.
Eksempelkriterier for udvælgelsesforespørgsler
I følgende tabel vises nogle eksempelkriterier, som du kan bruge i udvælgelsesforespørgsler, når du vil sikre dig, at du kun sletter de data, du vil slette. Nogle af disse eksempler 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 indtaste < 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. februar 2010 til 1. december 2010 (ANSI-89). Hvis databasen bruger ANSI-92-jokertegn,skal du bruge enkelte anførselstegn (') i stedet for nummertegn (#). Eksempel: Between '02-02-2010' And '12/1/2010'. |
Not "Tyskland" |
Finder alle de 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 de poster, der starter med bogstaverne A til og med D, i et tekstfelt. Hvis databasen bruger ANSI-92-jokertegn, skal du bruge procenttegnet (%) 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 poster for 2. februar 2010. Hvis databasen bruger ANSI-92-jokertegn, skal du sætte datoen i enkelte anførselstegn i stedet for nummertegn ('02-02-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 fra dags dato. |
Is Null |
Returnerer alle de poster, der indeholder en Null-værdi (tom eller ikke defineret). |
Is Not Null |
Returnerer alle poster, der indeholder en hvilken som helst værdi (som ikke er null). |
"" |
Returnerer alle de poster, der indeholder en streng af længden nul. Du kan bruge tomme strenge, når du har brug for at føje en værdi til et obligatorisk felt, men du endnu ikke ved, hvad den faktiske værdi er. Hvis et felt f.eks. I dette tilfælde skal du i stedet for at angive et tal angive 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 ved hjælp af flere tabeller, og forespørgslens egenskab Entydige poster er indstillet til Nej, viser Access fejlmeddelelsen. Kunne ikke slette 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, du ikke har valgt at have tillid til, eller som ikke findes på en placering, der er 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:
Handlingen eller hændelsen blev blokeret af deaktiveret tilstand.
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.