Anta at din Access-database har to ikke-relaterte tabeller – en som lagrer kundedata og en annen som lagrer data om leverandorer – og begge tabellene har et kontaktinformasjonfelt. Du vil se kontaktinformasjonen fra begge tabellene i en visning. For a gjore dette, ma du forst opprette et utvalg for hver tabell for a hente kontaktinformasjonen, og deretter kombinere disse resultatene ved a opprette en fagforesporsel.

Merk: Innholdet i denne artikkelen er beregnet for bruk med Access-databaser. Du kan ikke opprette eller bruke et fagforesporsmal i Access web-databaser eller Fa tilgang til webapper.

Trenger du en oppdatering pa a lage grunnleggende utvalgssporsmal? Se Opprett en enkel velg sporring.

Forst et par ting a vite om a skape et fagforesporsmal:

De utvalgte sporringene du kombinerer i et fagforesporsmal, ma ha samme antall utdatafelter, i samme rekkefolge, og med samme eller kompatible datatyper. Nar du kjorer en fagforesporsel, blir data fra hvert sett av tilsvarende felt kombinert i ett utgangsfelt, slik at sporringsutgangen har samme antall felter som hver av SELECT-setningene.

En fagforesporsel er SQL-spesifikk, og ma derfor skrives direkte i SQL. Du bytter til SQL View for a skrive SQL-spesifikke sporringer, inkludert fagforesporsler.

Trinn 1: Opprett utvalgte sok.

Merk: Selv om du kan inkludere flere tabeller eller sporringer i en sporring, forutsetter denne prosedyren at hver av dine utvalgte sok inneholder data fra bare ett bord.

Pa fanen Opprett, i sporringer-gruppen, klikker du pa Query Design.

Dobbeltklikk pa tabellen som har feltene du vil inkludere i dialogboksen Vis tabell. Tabellen legges til i sporringsdesignvinduet.

Lukk dialogboksen Vis tabell.

Dobbeltklikk pa hvert felt du vil inkludere i sporringsdesignvinduet.

Nar du velger felt, ma du sorge for at du legger til samme antall felt i samme rekkefolge som du legger til i de andre utvalgene. V r forsiktig med datatypene til feltene, og sorg for at de har kompatible datatyper med felt i samme posisjon i de andre sporringene du kombinerer. For eksempel, hvis ditt forste utvalg inneholder fem felt, hvorav den forste inneholder dato / klokkedata, ma du kontrollere at hver av de andre utvalgte sporringene du kombinerer, ogsa har fem felt, hvorav den forste inneholder dato / klokkedata, og sa videre.

Du kan eventuelt legge til kriteriene i feltene dine ved a skrive de riktige uttrykkene i Kriterie-raden i feltruten.

Nar du er ferdig med a legge til felt- og feltkriterier, bor du kjore seleksjonsforesporselen og gjennomga produksjonen. Pa fanen Design klikker du Kjor i resultatgruppen.

Bytt sporringen til designvisning.

Lagre sporringen, og la den sta apen.

Gjenta denne fremgangsmaten for hver av de utvalgte sporringene du vil kombinere.

For mer informasjon om bruk av kriterier i en sporring, se Bruk kriterier for et sporsmal.

Trinn 2: Kombiner utvalgssporsmalene.

I dette trinnet oppretter du unionsforesporselen ved a bruke SQL-setninger. (For mer informasjon, se SQL-syntakseksjonen, nedenfor.)

Pa fanen Opprett, i sporringer-gruppen, klikker du pa Query Design.

Lukk dialogboksen Vis tabell.

Pa fanen Design klikker du pa Union i sporringsgruppen.

Tilgang skjuler foresporselsdesignvinduet, og viser fanen SQL View Object. Pa dette punktet er tabellen for SQL-visningsobjekt tom.

Klikk pa fanen for det forste utvalgssoket du vil kombinere i foreningsforesporselen.

Pa fanen Hjem klikker du pa Vis & gt; SQL View.

Kopier SQL-setningen for den valgte sporringen. Klikk pa fanen for fagforesporselen du begynte a opprette i trinn 1.

Lim inn SQL-setningen for den valgte sporringen i SQL-visningsobjektfanen i fagforesporselen.

Slett semikolonet (;) pa slutten av SQL-setningen for valgt sok.

Trykk Enter for a flytte markoren ned en linje, og skriv deretter UNION pa den nye linjen.

Klikk pa fanen for neste utvalgssoke som du vil kombinere i foreningsforesporselen.

Gjenta trinn 5 til 10 til du har kopiert og limt inn alle SQL-setningene for utvalgte sporsmal i SQL-visningsvinduet i foreningsforesporselen. Ikke slett semikolonet eller skriv noe som folger med SQL-setningen for det siste velgesoket.

Pa fanen Design klikker du Kjor i resultatgruppen.

Resultatene av fagforesporselen din vises i databladvisning.

Tips for bruk av fagforesporsler.

For a kunne skille hvilke rader som kom fra hvilket bord, legger du til en tekststreng som et felt i hvert av de valgte setningene.

For eksempel, hvis en valgt setning henter felt fra en tabell som heter Produkter, og en annen markering er hentet fra en tabell med navnet Tjenester, legger du til strengen «Produkt» som et felt pa slutten av den forste setningen og «Service» pa slutten av den andre uttalelsen. Du kan ogsa tilordne et feltalias (for eksempel «type») til strengene ved a bruke AS-sokeordet, som vist i folgende eksempel:

VELG felt1, felt2,. «Produkt» AS-type.

VELG felt1, felt2,. «Service» AS type.

Sokeutgangen vil inneholde et felt med navnet «type» som viser om raden kom fra produkttabellen eller tjenestetabellen.

Hvert UNION-sokeord kombinerer SELECT-setningene som umiddelbart foregar og folger det. Hvis du bruker ALLE sokeordet med noen av UNION-sokeordene i soket ditt, men ikke med andre, vil resultatene inkludere duplikatrader fra parene SELECT-setninger som kombineres ved a bruke UNION ALL, men vil ikke inkludere dupliserte rader fra SELECT uttalelser som kombineres ved a bruke UNION uten ALLE sokeordet.

Antallet, datatyper og rekkefolge av feltene i utvalgte sporsmal ma stemme overens. Du kan bruke uttrykk, for eksempel beregninger eller underforesporsler, for a fa dem til a korrespondere.

For eksempel kan du matche et to tegn tegnfelt med et fire tegn arsfelt ved a bruke Hoyre-funksjonen for a trekke ut de to siste sifrene i firekarakteraret.

Bruke resultatene fra et fagforesporsmal for a opprette et nytt bord.

Bruk forst foreningssporsmalet som input for et nytt utvalg, og bruk deretter det valgte sporsmalet som grunnlag for et sporreskjema, som vist i folgende trinn:

Lag og lag unionsforesporselen.

Pa fanen Opprett, i sporringer-gruppen, klikker du pa Query Design.

I dialogboksen Vis tabell klikker du kategorien Sporringer.

Dobbeltklikk pa fagforesporselen, og lukk dialogboksen Vis tabell.

Merk: Hvis du ser en advarsel om sikkerhet i Meldingsbjelken, kan handlingsforesporsler v re deaktivert. For a aktivere handlingsforesporsler, klikk Aktiver innhold pa Meldingslinjen.

Dobbeltklikk pa stjernen (*) i feltet for sporreskjemaet pa objektfanen for fagforesporsler, for a bruke alle feltene for fagforesporsler til a lage et nytt bord.

Pa kategorien Design, i gruppen Foresporselstype, klikker du Lag tabell.

Skriv inn et navn for det nye tabellen i dialogboksen Lag tabell.

Du kan eventuelt angi en annen database der du skal opprette tabellen.

Pa fanen Design klikker du Kjor i resultatgruppen.

Bruk en fagforesporsel for a utfore en full ytre sammenfoyning.

Du kan bruke en fagforesporsel for a utfore en full ytre sammenfoyning. En full ytre sammenfoyning begrenser ikke radene som returneres fra en av de sammenfoyde tabellene, men kombinerer rader pa grunnlag av verdier i tilmeldingsfeltet.

Lag en foresporsel som har en venstre ytre sammenfoyning pa feltet som du vil bruke for en full ytre sammenfoyning.

Pa fanen Hjem, i visningsgruppen, klikker du pa Vis, og deretter klikker du pa SQL View.

Trykk Ctrl + C for a kopiere SQL-koden.

Slett semikolonet pa slutten av FROM-klausulen, og trykk deretter pa Enter.

Skriv UNION, og trykk deretter pa Enter.

Merk: Ikke bruk ALLE sokeordet nar du bruker en fagforesporsel for a utfore en full ytre sammenfoyning.

Trykk Ctrl + V for a lime inn SQL-koden du kopierte i trinn 3.

I koden du limte, endrer du VENSTRE JOIN til RIGHT JOIN.

Slett semikolonet pa slutten av den andre FROM-klausulen, og trykk deretter pa Enter.

Legg til en WHERE-klausul som angir at verdien av tilmeldingsfeltet er NULL i den forste tabellen som er oppfort i FROM-klausulen (venstre bord).

For eksempel, hvis FROM-klausulen er:

Du vil legge til folgende WHERE-setning:

HVOR Products.ID ER NULL.

Skriv et semikolon (;) pa slutten av WHERE-klausulen for a indikere slutten av fagforesporselen.

Pa fanen Design klikker du Kjor i resultatgruppen.

Resultatene av fagforesporselen din vises i databladvisning.

Krav og SQL syntaks for en union foresporsel.

Noen krav til en fagforesporsel.

De utvalgte sporringene som du kombinerer i en fagforesporsel, ma ha samme antall utdatafelter, i samme rekkefolge, og med samme eller kompatible datatyper. Nar du kjorer en fagforesporsel, blir data fra hvert sett av tilsvarende felt kombinert i ett utgangsfelt, slik at sporringsutgangen har samme antall felter som hver av SELECT-setningene.

Merk: For et fagforesporsmal er tall og tekst datatyper kompatible.

En fagforesporsel er SQL-spesifikk, og ma derfor skrives direkte i SQL. Du bytter til SQL View for a skrive SQL-spesifikke sporringer, inkludert fagforesporsler.

SQL-syntaks av en fagforesporsel.

I et fagforesporsmal har hver valgt sporring (ogsa kalt SELECT-setning) folgende klausuler:

Inneholder en liste over …

felt som inneholder dataene du vil hente.

Tabeller som inneholder disse feltene.

kriterier for disse feltene.

SELECT-setningene kombineres ved hjelp av UNION-sokeordet.

Den grunnleggende SQL-syntaksen for en fagforesporsel er som folger:

Hvis databasen din har en tabell med navnet Produkter og en annen tabell som heter Services, og begge tabellene har felt som inneholder navnet pa produktet eller tjenesten, pris, garanti eller garanti, og om du bare tilbyr produktet eller tjenesten. Selv om produkttabellen lagrer garantininformasjon, og Service-tabellen lagrer garantiinformasjon, er grunnleggende informasjonen den samme (om et bestemt produkt eller en tjeneste leveres med et lofte om kvalitet). Du kan bruke en fagforesporsel, for eksempel folgende, for a kombinere de fire feltene fra de to tabellene:

La oss undersoke det foregaende syntakseksemplet, linje for linje:

VELG navn, pris, garanti_avhengig, eksklusiv tilbud.

Forste SELECT-klausul.

SELECT folges av en liste over identifikatorer som angir feltene du vil hente data fra.

En SELECT-klausul ma oppgi minst ett felt.

Denne SELECT-klausulen viser feltidentifikatorens navn, pris, garanti, og eksklusive tilbud.

Forste FRA-klausul.

En FROM-klausul folger et SELECT-klausul, og sammen danner de en grunnleggende SELECT-setning.

FROM folges av en liste over identifikatorer som angir hvilke tabeller som inneholder feltene som er oppfort i SELECT-klausulen.

En FROM-klausul ma oppgi minst ett bord.

Denne FRA-klausulen viser tabellidentifikatorprodukter.

UNION-sokeordet og det valgfrie ALLE sokeordet.

Resultatene av SELECT-setningen som ligger foran UNION, er kombinert med resultatene av SELECT-setningen som folger UNION.

Nar du bruker ALLE sokeordet, blir ikke dupliserte rader fjernet fra foreningens sokeresultat.

Ved a bruke ALLE sokeordet kan sporringen lope raskere fordi Access ikke trenger a se etter dupliserte rader.

Bruk ALLE sokeordet hvis noen av folgende betingelser er sanne:

Du er sikker pa at de valgte sokene ikke vil produsere noen dupliserte rader.

Det spiller ingen rolle for deg hvis resultatene dine har dupliserte rader.

Du vil se dupliserte rader.

SELECT navn, pris, garanti, tilgjengelig, eksklusiv tilbud.

Second SELECT-klausul.

Den andre SELECT-klausulen ma ha det samme antall felt som den forste SELECT-klausulen.

Felt som deler vanlige data ma vises i samme rekkefolge i klausulen.

Felt som deler vanlige data ma ha samme eller kompatible datatyper.

Merk: Navnene pa feltene i utgangen av en fagforesporsel er fra den forste SELECT-klausulen. Sa, i vart eksempel, blir data fra feltet «warranty_available» og fra feltet «guarantee_available» kalt «warranty_available» i sokeutgangen.

Second FROM-klausulen.

Det er ingen begrensninger pa tabellene i FRA-klausulene i et fagforesporsmal. Du kan opprette en fagforesporsel som bruker de samme tabellene i hver FRA-klausul. Du kan ha forskjellig antall tabeller i FRA-klausulene. I vart eksempel har FROM-klausulene hver eneste tabell.