Der kan opstå situationer, hvor du ikke kan redigere data i Dataarkvisning for at ændre dataene i den underliggende tabel. Denne artikel hjælper dig med at forstå, hvornår du kan redigere forespørgselsdata, når du ikke kan redigere forespørgselsdata, og hvordan du kan ændre designet af en forespørgsel, så du kan redigere dens underliggende data.
I denne artikel
Introduktion
Når du åbner en forespørgsel i dataarkvisning, vil du måske opdage, at du vil redigere dataene. Måske bemærker du en fejl, eller måske ser du nogle oplysninger, der er forældede. Afhængigt af hvordan forespørgslen blev opbygget, kan du redigere dataene direkte i forespørgslen dataark.
Hvis du forsøger at redigere dataene i et forespørgselsdataark, men der ikke sker noget, eller Windows afspiller en lyd, og din redigering ikke sker, kan du ikke udføre redigeringen. Det kan være tilfældet, at selve forespørgslen ikke er tilgængelig til redigering, f.eks. en krydstabuleringsforespørgsel. Det kan også være, at det kun er det felt, du forsøger at redigere, der ikke er tilgængeligt til redigering – f.eks. hvis feltet er baseret på en aggregeringsfunktion, f.eks. et gennemsnit. I begge tilfælde kan du muligvis gøre noget for at aktivere redigering.
Ud over at redigere data i forespørgselsdataarkvisning kan du også bruge en opdater forespørgsel til at opdatere data i en tabel. Denne artikel dækker ikke opdateringsforespørgsler.
Du kan finde flere oplysninger om opdateringsforespørgsler i artiklen Opret og kør en opdateringsforespørgsel.
Når du vil redigere data i forespørgselsdataarkvisning, ønsker du som regel, at dine ændringer gemmes i de tabeller, som forespørgslen er baseret på. Hvis du ikke vil ændre dataene i disse tabeller, men stadig gerne vil redigere dataene og bevare de redigerede data, når du er færdig, kan du bruge en opret-tabel-forespørgsel til først at oprette en ny tabel, hvis data du kan redigere. Du kan også bruge en tabelredigeringsforespørgsel til at gemme resultaterne af en forespørgsel, der ikke tillader redigering som en ny tabel, og derefter redigere dataene i den nye tabel. I denne artikel beskrives det ikke, hvordan du opretter og kører tabel opret-tabel-forespørgsler.
Du kan finde flere oplysninger om opret-tabel-forespørgsler i artiklen Opret en tabel opret-tabel-forespørgsel.
Hvornår kan jeg redigere data i en forespørgsel?
Du kan altid redigere dataene i en forespørgsel, når forespørgslen er baseret på enten kun én tabel eller på to tabeller, der har en en-til-en-relation til hinanden.
Bemærk!: Selvom du kan redigere data i en forespørgsel, kan nogle af felterne muligvis ikke redigeres. Sådanne tilfælde er angivet i det følgende afsnit.
Hvornår kan jeg ikke redigere data i en forespørgsel?
Du kan aldrig redigere dataene i en forespørgsel, når:
-
Forespørgslen er en krydstabuleringsforespørgsel.
-
Forespørgslen er en SQL-forespørgsel.
-
Det felt, du forsøger at redigere, er et beregnet felt. I dette tilfælde kan du muligvis redigere de andre felter.
-
Forespørgslen er baseret på tre eller flere tabeller, og der er en mange-til-en-til-mange-relation.
Bemærk!: Selvom du ikke kan redigere forespørgselsdataarket i dette tilfælde, kan du redigere dataene i en formular, når egenskaben Postsættype for formularen er indstillet til Dynamisk sæt (inkonsekvente opdateringer).
-
Forespørgslen indeholder en GROUP BY-delsætning.
Hvordan ændrer jeg en forespørgsel, så jeg kan redigere dens data?
I følgende tabel vises tilfælde, hvor du ikke kan redigere en forespørgsel, der er parret med metoder til at gøre forespørgselsdataarket tilgængeligt til redigering.
Du kan ikke redigere værdierne i et forespørgselsdataark, når: |
Sådan gør du forespørgselsdataarket tilgængeligt til redigering: |
Egenskaben Entydige værdier for forespørgslen er indstillet til Ja. |
Angiv egenskaben Entydige værdier for forespørgslen til Nej. Se følgende afsnit, Angiv egenskaben Entydige værdier tilNej for at få mere at vide om, hvordan du angiver denne egenskab. |
Forespørgslen indeholder en sammenkædet ODBC-database tabel uden unikt indeks eller en Paradox-tabel uden primær nøgle. |
Føj en primær nøgle eller et entydigt indeks til den sammenkædede tabel ved hjælp af de metoder, der leveres af leverandøren af den sammenkædede database. |
Du har ikke tilladelse til at opdatere data for den underliggende tabel. |
Tildele opdateringsdatatilladelser. |
Forespørgslen indeholder mere end én tabel eller forespørgsel, og tabellerne eller forespørgslerne er ikke forbundet med en joinlinje i designvisning. |
Opret de relevante joinforbindelse. Se afsnittet Opret joinforbindelse for at fåmere at vide om, hvordan du opretter joinforbindelse. |
Databasen er åben som skrivebeskyttet eller placeret på et skrivebeskyttet drev. |
Luk databasen, og åbn den igen uden at vælge Åbn som skrivebeskyttet. Hvis databasen er placeret på et skrivebeskyttet drev, skal du fjerne skrivebeskyttet attributten fra drevet eller flytte databasen til et drev, der ikke er skrivebeskyttet. |
Feltet i den post, du forsøger at opdatere, slettes eller låses af en anden bruger. |
Vent på, at posten låses op. En låst post kan opdateres, så snart posten er ulåst. Vent på, at den anden bruger afslutter handlingen, der har låst posten. |
Forespørgslen er baseret på tabeller med en en-til-mange-relation, og joinfeltet fra mange-siden er ikke et outputfelt. I dette tilfælde kan dataene i joinfeltet fra en-siden ikke redigeres. |
Føj joinfeltet fra mange-siden af relationen til forespørgselsoutputfelterne. Se afsnittet, Tilføj joinfeltet fra "mange"-sidentil forespørgselsfeltet for at få mere at vide om, hvordan du tilføjer joinfeltet. |
Joinfeltet fra mange-siden (når du har redigeret data) er på en-siden. |
Tryk på Skift+F9 for at bekræfte ændringerne og opdatere forespørgslen. |
Der er et tomt felt fra tabellen på en-siden af en en til mange-relation, og joinforbindelse er en højre ydre joinforbindelse. |
Sørg for, at der er værdi i feltet på en-siden. Du kan kun redigere joinfeltet på mange-siden, hvis der er en værdi i feltet på en-siden. |
Du bruger en sammenkædet ODBC-databasetabel, og ikke alle felterne fra den sammenkædede tabels entydige indeks findes i forespørgselsresultaterne. |
Føj alle felterne fra ODBC-tabellens entydige indeks til forespørgselsoutputfelterne. Se afsnittet Tilføj entydige indeksfelter fra en sammenkædet ODBC-tabelfor at få mere at vide om, hvordan du tilføjer felterne. |
Angiv egenskaben Entydige værdier til Nej
-
Åbn forespørgslen i designvisning.
-
Hvis egenskabsarket ikke er åbent, skal du åbne det ved at trykke på F4. Klik én gang i forespørgselsdesigngitteret for at sikre, at egenskabsarket viser forespørgselsegenskaber i stedet for feltegenskaber.
-
Find egenskabsfeltet Entydige værdier i egenskabsarket. Klik på feltet ud for det, klik på pilen i det pågældende felt, og klik derefter på Nej.
Opret joinforbindelse
-
Åbn forespørgslen i designvisning.
-
For hver tabel eller forespørgsel, du vil joinforspørge til en anden, skal du trække joinfeltet fra den pågældende tabel eller forespørgsel til det tilsvarende felt i den tabel eller forespørgsel, som du vil oprette joinforbindelse for.
Du kan finde flere oplysninger om oprettelse af joinforbindelse i artiklen Jointabeller og forespørgsler.
Føj joinfeltet fra mange-siden til forespørgselsoutputfelterne
-
Åbn forespørgslen i designvisning.
-
Find den joinforbindelse, der svarer til den relevante en til mange-relation, i Forespørgselsdesigner.
-
Dobbeltklik på joinfeltet på mange-siden af en til mange-relationen. Joinfeltet vises i feltgitteret og angiver, at det nu er et outputfelt.
Tilføj entydige indeksfelter fra en sammenkædet ODBC-tabel
-
Åbn forespørgslen i designvisning.
-
Find den sammenkædede ODBC-tabel i Forespørgselsdesigner.
-
De entydige indeksfelter har et nøglesymbol ud for feltnavnet. Dobbeltklik på hvert felt, der ikke allerede er i feltgitteret. Hvert felt vises i feltgitteret og angiver, at det nu er et outputfelt.