Prøv det!
For at få de svar, du gerne vil have, opretter du ofte forespørgsler, der indsamler oplysninger fra mere end én tabel eller fra en kombination af tabeller og forespørgsler.
Introduktion til joinforbindelser
Nogle gange skal du bruge data fra mere end én kilde (tabel eller forespørgsel) til at besvare spørgsmål. Du vil måske gerne se, hvor mange kunder i et bestemt område, der bestilte et bestemt produkt.
Når du tilføjer mere end én datakilde, anvender Access de eksisterende relationer, der er defineret mellem dem eller opretter joinforbindelser mellem dem til forespørgslesformål. En joinforbindelse er blot en relationstype mellem datakilder i en forespørgsel.
Bemærk!: Joinforbindelser er midlertidige og er kun knyttet til forespørgslen. Hvis du ofte opretter den samme joinforbindelse mellem tabeller, kan du eventuelt oprette en permanent relation mellem dem.
Indre joinforbindelser
De fleste joinforbindelser er indre joinforbindelser. Dette er i modsætning til ydre joinforbindelser, der er nævnt i Opret forespørgsler med ydre joinforbindelser.
En indre joinforbindelse returnerer kun data fra én kilde, når den finder tilsvarende poster i den anden. Hvis du for eksempel forespørger efter oplysninger om produkter og ordrer, kan du kun se data for produkter, der har en matchende ordre.
Selv-joinforbindelser
En selv-join sammenkæder to kopier af den samme tabel eller forespørgsel. Brug den til at kombinere poster fra den samme tabel, når der er tilsvarende værdier i de sammenkædede felter.
Lad os antage, at du har tabellen Medarbejdere, der viser alle medarbejdere i organisationen, herunder lederne. Tabellen indeholder feltet Rapporterer til, der indeholder id for medarbejderens chef.
Id |
Efternavn |
Fornavn |
Rapporterer til |
---|---|---|---|
1 |
Freehafer |
Nancy |
5 |
2 |
Cencini |
Andrew |
|
3 |
Kotas |
Jan |
10 |
4 |
Sergienko |
Mariya |
5 |
5 |
Thorpe |
Steven |
2 |
6 |
Neipper |
Michael |
10 |
7 |
Zare |
Robert |
10 |
8 |
Guissani |
Laura |
10 |
9 |
Hellung-Larsen |
Anne |
5 |
10 |
Lund |
Mathilde |
3 |
Hvis du vil finde navnet på en medarbejders leder, skal du finde medarbejderen i tabellen, finde leder-id'et i feltet Rapporterer til og derefter søge efter lederens id i det samme felt Medarbejdere. Nancy rapporterer f.eks. til lederen, hvis medarbejder-id er 5 – det er Steven Thorpe.
For at automatisere denne opgave, skal du tilføje tabellen Medarbejder til din forespørgsel to gange og oprette en selv-join. Når du tilføjer datakilden endnu en gang, føjer Access _1 til navnet på forekomst nummer 2. Hvis du for eksempel tilføjer tabellen Medarbejdere to gange, kaldes den anden forekomst Medarbejdere_1. For at få vist ledernavnet for hver medarbejder, opretter du en joinforbindelse mellem feltet Rapporterer til i tabellen Medarbejdere, og feltet Medarbejder-id i tabellen Medarbejdere_1.
1. Tilføj datakilder
-
Vælg Opret > Forespørgselsdesign.
Tilføj alle de tabeller og forespørgsler, du skal bruge som datakilder. (Bare rolig. Hvis du glemmer en, har du stadig mulighed for at tilføje flere datakilder senere.)
Datakilderne kan indeholde tabeller, hvorfra du vil have vist oplysninger (f.eks. en produkttabel), og tabeller, der indeholder oplysninger, du skal bruge til kriterier.
Husk, at eksisterende, gemte forespørgsler også er tilgængelige som datakilder. F.eks, hvis du allerede har oprettet en forespørgsel for at finde alle ordrer for en given måned, skal du bruge forespørgslen og produkttabellen til at vise alle produkter, der er solgt i en given måned.
2. Sammenkæd relaterede datakilder
-
For at tilføje en joinforbindelse selv, skal du trække ét felt fra en datakilde til et tilsvarende felt i en anden datakilde. Som standard opretter Access en indre joinforbindelse.
Access opretter en indre joinforbindelse for de fleste relationer. Og hvis du har angivet, at refererende integritet bør påtvinges, er det med. Men i nogle tilfælde opretter Access ikke den joinforbindelse, du skal bruge. Hvis du for eksempel føjer eksisterende forespørgsler til den nye forespørgsel og ikke har oprettet relationer, opretter Access ikke automatisk joinforbindelser.
3. Fuldfør forespørgslen
-
Følg de sædvanlige trin for at oprette en forespørgsel: tilføj outputfelter, tilføj kriterier og kør eller gem din forespørgsel. Hvis du vil se hvordan, skal du se Opret grundlæggende forespørgsler.