Seoste loomine, redigeerimine või kustutamine
Applies ToMicrosoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Accessi seose abil saate ühendada kahe erineva tabeli andmed. Iga seos koosneb kahe tabeli kattuvate andmetega väljadest. Oletame näiteks, et teil on väli Tootenumber nii tabelis Tooted kui ka tabelis Tellimuseteave. Igal tabeli Tellimuseteave kirjel on tootenumber, mis vastab sama tootenumbriga kirjele tabelis Tooted.

Kui kasutate päringus seotud tabeleid, võimaldab seos Accessil määratleda, milliseid kirjeid igast tabelist tulemikomplekti kombineerida. Seos võib aidata vältida ka puuduvaid andmeid, välistades kustutatud andmete sünkroonimisest väljajäämise, seda nimetatakse viitamistervikluseks.

Enne seostega töötamist veenduge, et mõistate tausta põhimõtteid. Lisateavet leiate artiklitest Tabeliseoste juhend ja Tabeliseoste kasutamise alustamine.

Selle artikli teemad

Ülevaade

Accessi andmebaasis luuakse tabeliseos ühel viisil järgmistest:

  • lisades aknasse Seosed seostatavad tabelid ja seejärel lohistades seostamiseks välja ühest tabelist teise;

  • lohistades välja tabeli andmelehele paanilt Väljaloend.

Tabelitevahelise seose loomisel ei pea üldväljadel olema samad nimed, kuigi sageli on. Ühistel väljadel peab olema sama andmetüüp. Kui primaarvõtme väli on automaatnumbri väli, võib võõrvõtme väli olla ka arvuväli, kui mõlema välja atribuut Välja suurus on sama. Näiteks saate vastendada automaatnumbri- ja arvuvälja, kui mõlema välja atribuut Välja suurus on Pikk täisarv. Kui mõlemad üldväljad on arvuväljad, peab neil olema sama atribuudisäte Välja suurus.

Lehe algusse

Tabeliseose loomine akna Seosed abil

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Lisa tabelid.

  3. Valige üks või mitu tabelit või päringut ning seejärel klõpsake nuppu Lisa. Pärast dokumendimenüüsse Seosed tabelite ja päringute lisamist klõpsake nuppu Sule.

  4. Lohistage ühe tabeli väli (tavaliselt primaarvõti) teise tabeli ühisele väljale (võõrvõti). Mitme välja lohistamiseks vajutage juhtklahvi (CTRL), klõpsake soovitud välju ja seejärel lohistage need.Kuvatakse dialoogiboks Seoste redigeerimine .Edit Relationships dialog box in Access with Customers and Orders join fields

  5. Kontrollige, kas kuvatavad väljanimed on seose ühiste väljade nimed. Kui väljanimi on vale, klõpsake väljanime ja valige loendist õige nimi.Seose viitamistervikluse jõustamiseks märkige ruut Jõusta viitamisterviklus . Viitamistervikluse kohta lisateabe saamiseks lugege peatükki Viitamistervikluse jõustamine.

  6. Klõpsake nuppu Loo.

    Access tõmbab kahe tabeli vahele seosejoone. Kui märkisite ruudu Jõusta viitamisterviklus, kuvatakse selle joone mõlemad otsad paksemana. Ainult ruudu Jõusta viitamisterviklus märkimisel kuvatakse seosejoone ühe poole paksu osa kohal arv 1 ja joone teise poole paksu osa kohal lõpmatuse sümbol () (nagu kuvatud järgmisel joonisel).Välja lohistamine tabelist teise tabeli vastavale väljale

    Märkused: 

    • Üks-ühele seose loomine    Mõlemal üldväljal (tavaliselt primaarvõtme ja võõrvõtme väljadel) peab olema ainuindeks. See tähendab, et nende väljade atribuudi Indekseeritud väärtuseks tuleb seada Jah (duplikaadid puuduvad). Kui mõlemal väljal on kordumatu indeks, loob Access üks-ühele seose.

    • Üks-mitmele seose loomine    Seose „üks“-poole (tavaliselt primaarvõtme) väljal peab olema ainuindeks. See tähendab, et selle välja atribuudi Indekseeritud väärtuseks tuleb seada Jah (duplikaadid puuduvad). „Mitu“-poole väljal ei tohi olla ainuindeksit. Sellel võib olla indeks, kuid see peab lubama duplikaate. See tähendab, et selle välja atribuudi Indekseeritud väärtuseks tuleks seada Ei või Jah (duplikaadid lubatud). Kui ühel väljal on ainuindeks ja teisel mitte, loob Access üks-mitmele seose.

Lehe algusse

Väljaloendi paani abil tabeliseose loomine välja lisamiseks

Saate lisada välja andmelehevaates avatud olemasolevasse tabelisse lohistades selle paanilt Väljaloend. Paanil Väljaloend kuvatakse seotud tabelites ja muudes andmebaasi tabelites saadaolevad väljad.

Kui lohistate välja nn muust (seostamata) tabelist ning seejärel läbite otsinguviisardi, luuakse paani Väljaloend tabeli ja sihttabeli vahel automaatselt uus üks-mitmele seos. See Accessi loodud seos ei jõusta viitamisterviklust vaikimisi. Viitamistervikluse jõustamiseks tuleb seost redigeerida. Lisateabe saamiseks lugege peatükki Seose redigeerimine.

Tabeli avamine andmelehevaates

  • Topeltklõpsake navigeerimispaanil tabelit.

Väljaloendi paani avamine

  • Vajutage klahvikombinatsiooni ALT+F8. Kuvatakse paan Väljaloend.

    Paan Väljaloend

Paanil Väljaloend kuvatakse kategooriate kaupa kõik muud andmebaasi tabelid. Kui töötate tabeliga andmelehevaates, kuvab Access paanil Väljaloend väljad kahte kategooriasse jaotatuna: Seotud tabelites saadaolevad väljad ja Muudes tabelites saadaolevad väljad. Esimeses kategoorias on loetletud kõik tabelid, millel on seos tabeliga, millega praegu töötate. Teises kategoorias on loetletud kõik tabelid, millega teie tabelil seost pole.

Kui klõpsate paanil Väljaloend tabeli nime kõrval olevat plussmärki (+), kuvatakse kõigi selles tabelis saadaolevate väljade loend. Tabelisse välja lisamiseks lohistage andmelehevaates soovitud väli paanilt Väljaloend tabelisse.

Väljaloendi paanil välja lisamine ja seose loomine

  1. Kui tabel on andmelehevaates avatud, vajutage klahvikombinatsiooni ALT+F8. Kuvatakse paan Väljaloend.

  2. Klõpsake tabeli väljade loendi kuvamiseks jaotises Muudes tabelites saadaolevad väljad tabeli nime kõrval olevat plussmärki (+).

  3. Lohistage soovitud väli paanilt Väljaloend andmelehevaates avatud tabelisse.

  4. Lisamisjoone ilmumisel kukutage väli oma kohale.

    Käivitatakse Otsinguviisard.

  5. Otsinguviisardi lõpuleviimiseks järgige kuvatavaid juhiseid.

    Väli kuvatakse andmelehevaates avatud tabelis.

Kui lohistate välja muust (sidumata) tabelist ja seejärel täidate otsinguviisardi, luuakse automaatselt üks-mitmele seos paani Väljaloend ja tabeli, kuhu välja lohistasite, vahele. See Accessi loodud seos ei jõusta viitamisterviklust vaikimisi. Viitamistervikluse jõustamiseks tuleb seost redigeerida. Lisateabe saamiseks lugege peatükki Seose redigeerimine.

Lehe algusse

Seose redigeerimine

Seose redigeerimiseks valige see aknas Seosed ja tehke soovitud redigeerimised.

  1. Seadke kursor hoolikalt seosejoone kohale ja joone valimiseks klõpsake seda.

    Seosejoone valimisel kuvatakse valitud rida paksemana.

  2. Kui seosejoon on valitud, topeltklõpsake seda.

    –või–

    Klõpsake menüü Seoste kujundus jaotises Tööriistad nuppu Redigeeri seoseid.

Kuvatakse dialoogiboks Seoste redigeerimine.

Dialoogiboksi Seoste redigeerimine avamine

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Kõik seosed.

    Kuvatakse kõik seostega tabelid ja seosejooned. Arvestage, et peidetud tabeleid (tabeleid, mille puhul tabeli dialoogiboksi Atribuudid ruut Peidetud on märgitud) ja nende seoseid ei kuvata, välja arvatud juhul, kui dialoogiboksis Navigeerimissuvandid on märgitud ruut Kuva peidetud objektid.

  3. Klõpsake muudetava seose seosejoont. Seosejoone valimisel kuvatakse valitud rida paksemana.

  4. Topeltklõpsake seosejoont.

    –või–

    Klõpsake menüü Seoste kujundus jaotises Tööriistad nuppu Redigeeri seoseid.

    Kuvatakse dialoogiboks Seoste redigeerimine.

    Edit Relationships dialog box in Access with Customers and Orders join fields

  5. Tehke soovitud muudatused ja klõpsake nuppu OK.

    Dialoogiboksis Seoste redigeerimine saate muuta tabeliseoseid. Täpsemalt öeldes saate muuta seose mõlema poole tabeleid, päringuid või välju. Saate seada ka liitmistüübi või jõustada viitamistervikluse ning valida kaskaadsuvandi. Liitmistüüpide ja nende seadmise kohta saate lisateavet teemast Liitmistüübi seadmine. Viitamistervikluse jõustamise ja kaskaadsuvandi valimise kohta saate lisateavet teemast Viitamistervikluse jõustamine.

Liitmistüübi seadmine

Tabeliseose määratlemisel saavad teie päringukujundused teavet seose kohta käivatest faktidest. Näiteks kui määratlete kahe tabeli vahelise seose ning seejärel loote päringu, mis kasutab neid kaht tabelit, valib Access automaatselt seoses määratud väljade põhjal vaikimisi vastendusväljad. Saate need päringu algsed vaikeväärtused alistada, kuid seose esitatud väärtused osutuvad sageli õigeteks. Kuna vastendate ja kogute mitme tabeli andmeid sageli keerukates andmebaasides, võib seoste loomise kaudu vaikeväärtuste seadmine olla aegasäästev ja mõistlik.

Mitmeväljaline päring kombineerib andmeid mitmest tabelist, vastendades üldväljadel olevad väärtused. Seda vastendamise ja kombineerimise toimingut nimetatakse liitmiseks. Oletame näiteks, et tahate kuvada klientide tellimusi. Selleks loote päringu, mis ühendab tabeli Kliendid ja tabeli Tellimused väljal Kliendi ID. Päringutulem sisaldab ainult nende ridade kliendi- ja tellimuseteavet, millel leiti vastavus.

Üks väärtus, mille saate igale seosele määrata, on liitmistüüp. Liitmistüüp ütleb Accessile, millised kirjed päringutulemisse kaasata. Näiteks võtame päringu, mis liidab tabeli Kliendid ning tabeli Tellimused üldväljadel, mis tähistavad kliendi ID-d. Vaikeliitmistüübi (mida nimetatakse sisemiseks liitmiseks) kasutamisel tagastab päring ainult väljad Klient ning väljad Tellimus, kui üldväljad (mida nimetatakse ka liidetud väljadeks) on võrdsed.

Oletame, et soovite kaasata kõik kliendid – isegi need, kes pole veel ühtegi tellimust esitanud. Selleks peate muutma liitmistüübi sisemisest ühendamisest vasakpoolseks väliseks ühendamiseks. Vasakpoolne väline ühendamine tagastab kõik seose vasakpoolse osa tabeli read ning parema osa ainult kattuvad read. Parempoolne väline ühendamine tagastab kõik paremal asuvad read ning vasakult ainult kattuvad read.

Märkus.: Käesoleval juhul viitavad "vasak" ja "parem" tabelite asendile dialoogiboksis Seoste redigeerimine, mitte aknas Seosed.

Peaksite mõtlema, milliseid tulemeid soovite kõige sagedamini selle seosega ühendatud tabelite päringutest saada, ning seadma liitmistüübi vastavalt sellele.

Liitmistüübi seadmine

  1. Klõpsake dialoogiboksis Seoste redigeerimine nuppu Liitmistüüp.

    Kuvatakse dialoogiboks Ühendamisatribuudid.Accessi dialoogiboks Ühendamisatribuudid kuvatakse kolme ühendusevalikuga. esimene suvand on valitud, millised olekud kaasatakse ainult sellistesse ridadesse, kus mõlema tabeli ühendatud väljad on võrdsed.

  2. Valige oma valik ja klõpsake nuppu OK.

Järgmises tabelis (kasutades tabelite Kliendid ja Tellimused näidet) kirjeldatakse dialoogiboksis Ühendamisatribuudid kuvatavat kolme valikut, valikutega kasutatavaid liitmistüüpe ja seda, kas tabelist tuuakse kõik või ainult vastendatud read.

Valik

Liitmistüüp

Vasakpoolne tabel

Parempoolne tabel

1. Kaasa read ainult juhul, kui mõlema tabeli ühendatud väljad on võrdsed.

Sisemine ühendamine

Vastendatud read

Vastendatud read

2. Kaasa KÕIK kirjed tabelist Kliendid ja ainult need kirjed tabelist Tellimused, mille ühendatud väljad on võrdsed.

Vasakpoolne väline ühendamine

Kõik read

Vastendatud read

3. Kaasa KÕIK kirjed tabelist Tellimused ja ainult need kirjed tabelist Kliendid, mille ühendatud väljad on võrdsed.

Parempoolne väline ühendamine

Vastendatud read

Kõik read

Kui valite suvandi 2 või 3, kuvatakse seosejoonel nool. See nool osutab seose sellele poolele, mille korral kuvatakse ainult vastendatud read.

Muudatuste tegemine dialoogiboksis Atribuutide ühendamine

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Kõik seosed.Kuvatakse kõik seostega tabelid, kus on kuvatud seosejooned. Arvestage, et peidetud tabeleid (tabeleid, mille puhul tabeli dialoogiboksi Atribuudid ruut Peidetud on märgitud) ja nende seoseid ei kuvata, välja arvatud juhul, kui dialoogiboksis Navigeerimissuvandid on märgitud ruut Kuva peidetud objektid.

  3. Klõpsake muudetava seose seosejoont. Seosejoone valimisel kuvatakse valitud rida paksemana.

  4. Topeltklõpsake seosejoont. Kuvatakse dialoogiboks Seoste redigeerimine.

  5. Klõpsake nuppu Liitmistüüp.

  6. Valige dialoogiboksis Ühendamisatribuudid soovitud suvand ja seejärel klõpsake nuppu OK.Accessi dialoogiboks Ühendamisatribuudid kuvatakse kolme ühendusevalikuga. esimene suvand on valitud, millised olekud kaasatakse ainult sellistesse ridadesse, kus mõlema tabeli ühendatud väljad on võrdsed.

  7. Soovi korral tehke seoses täiendavad muudatused ja seejärel klõpsake nuppu OK.

Lehe algusse

Viitamistervikluse jõustamine

Viitamistervikluse eesmärk on vältida orbkirjeid ehk kirjeid, mis viitavad olematutele kirjetele. Viitamistervikluse jõustamiseks lubage see vastava tabeliseose puhul. Kui viitamisterviklus on jõustatud, hülgab Access kõik toimingud, mis rikuks selle tabeliseose viitamisterviklust. See tähendab, et Access hülgab mõlemad värskendused, mis muudavad viite sihtmärki, ning kustutamistoimingud, mis eemaldavad viite sihtmärgi. Et Access levitaks viitamisvärskendusi ja kustutamisi nii, et kõik seotud read muudetaks vastavalt sellele, lugege peatükki Kaskaadsuvandite seadmine.

Viitamistervikluse sisse- või väljalülitamine

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Kõik seosed.Kuvatakse kõik seostega tabelid, kus on kuvatud seosejooned. Arvestage, et peidetud tabeleid (tabeleid, mille puhul tabeli dialoogiboksi Atribuudid ruut Peidetud on märgitud) ja nende seoseid ei kuvata, välja arvatud juhul, kui dialoogiboksis Navigeerimissuvandid on märgitud ruut Kuva peidetud objektid.

  3. Klõpsake muudetava seose seosejoont. Seosejoone valimisel kuvatakse valitud rida paksemana.

  4. Topeltklõpsake seosejoont. Kuvatakse dialoogiboks Seoste redigeerimine.

  5. Märkige või tühjendage ruut Jõusta viitamisterviklus.

  6. Soovi korral tehke seoses täiendavad muudatused ja seejärel klõpsake nuppu OK.

Pärast viitamistervikluse jõustamist rakendatakse järgmised reeglid.

  • Seostatud tabeli võõrvõtme väljale ei saa sisestada sellist väärtust, mida pole primaartabeli primaarvõtme väljal. Vastasel korral luuakse orbkirje.

  • Kirjet ei saa primaartabelist kustutada, kui seostatud tabelis on sellega vastendatud kirjeid. Näiteks ei saa tabelist Töötajad kustutada sellise töötaja kirjet, kellele on tabelis Tellimused määratud mõni tellimus. Kuid soovi korral saate ühe toiminguga kustutada primaarkirje ja kõik sellega seotud kirjed, märkides ruudu Kaskaadkustuta seostuvad kirjed.

  • Te ei saa muuta primaartabelis primaarvõtme väärtust, kui selle tulemusena tekiksid orbkirjed. Näiteks ei saa te muuta tabelis Tellimused tellimusenumbrit, kui sellele tellimusele on tabelis Tellimuse üksikasjad määratud reaüksused. Kuid saate värskendada ühe toiminguga primaarkirje ja kõik seotud kirjed, märkides ruudu Kaskaadvärskenda seostuvad väljad.

    Märkused: Kui teil on viitamistervikluse lubamisega raskusi, arvestage, et selle jõustamiseks peavad olema täidetud järgmised tingimused.

    • Primaartabeli ühine väli peab olema primaarvõti või sellel peab olema kordumatu indeks.

    • Ühistel väljadel peab olema sama andmetüüp. Ainsa erandina võib automaatnummerduse väli olla seotud sellise numbriväljaga, mille atribuudi Välja suurus säte on Pikk täisarv.

    • Mõlemad tabelid on olemas samas Accessi andmebaasis. Lingitud tabelite puhul ei saa viitamisterviklust jõustada. Kui aga lähtetabelid on Accessi vormingus, saate avada andmebaasi, kuhu need on salvestatud, ning lubada viitamistervikluse selles andmebaasis.

Kaskaadsuvandite seadmine

Teil võib tekkida olukord, kus on vaja muuta seose „üks“-poole väärtust. Sel juhul peab Access automaatselt värskendama ühe toimingu käigus kõik mõjutatud read. Nii viiakse värskendamine täielikult lõpule ning teie andmebaas ei jää vastuolulisse olekusse – kus mõni rida on värskendatud ja mõni rida mitte. Access aitab teil seda probleemi vältida, toetades suvandit Kaskaadvärskenda seostuvad väljad. Kui jõustate viitamistervikluse ja valite suvandi Kaskaadvärskenda seostuvad väljad ning seejärel värskendate primaarvõtme, värskendab Access automaatselt kõik primaarvõtmele viitavad väljad.

Samuti võib tekkida olukord, kus peate kustutama mõne rea ja kõik sellega seotud kirjed – näiteks ekspediitorikirje ja kõik selle ekspediitoriga seotud tellimused. Seetõttu toetab Access suvandit Kaskaadkustuta seostuvad kirjed. Kui jõustate viitamistervikluse ning märgite ruudu Kaskaadkustuta seostuvad kirjed, kustutab Access automaatselt kõik kirjed, mis viitavad primaarvõtit sisaldava kirje kustutamisel primaarvõtmele.

Kaskaadvärskendamise ja/või kaskaadkustutamise sisse- või väljalülitamine

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Kõik seosed.Kuvatakse kõik seostega tabelid, kus on kuvatud seosejooned. Arvestage, et peidetud tabeleid (tabeleid, mille puhul tabeli dialoogiboksi Atribuudid ruut Peidetud on märgitud) ja nende seoseid ei kuvata, välja arvatud juhul, kui dialoogiboksis Navigeerimissuvandid on märgitud ruut Kuva peidetud objektid.

  3. Klõpsake muudetava seose seosejoont. Seosejoone valimisel kuvatakse valitud rida paksemana.

  4. Topeltklõpsake seosejoont.Kuvatakse dialoogiboks Seoste redigeerimine .

  5. Märkige ruut Jõusta viitamisterviklus.

  6. Märkige ruut Kaskaadvärskenda seostuvad väljad või Kaskaadkustuta seostuvad kirjed või mõlemad.

  7. Soovi korral tehke seoses täiendavad muudatused ja seejärel klõpsake nuppu OK.

Märkus.: Kui primaarvõti on automaatnumbri väli, siis pole ruudu Kaskaadvärskenda seostuvad väljad märkimisel mingit mõju, kuna te ei saa automaatnumbri välja väärtust muuta.

Lehe algusse

Tabeliseose kustutamine

NB!: Seose eemaldamisel eemaldate ka selle seose viitamistervikluse toe (kui see on lubatud). Selle tulemusena ei takista Access enam automaatselt seose „mitu“-poole orbkirjete loomist.

Tabeliseose eemaldamiseks peate kustutama aknast Seosed vastava seosejoone. Asetage kursor seosejoonele ja seejärel klõpsake joont. Kui seosejoon on valitud, kuvatakse see paksemana. Kui seosejoon on valitud, vajutage kustutusklahvi (DELETE).

  1. Klõpsake menüü Andmebaasiriistad jaotises Seosed nuppu Seosed.

  2. Klõpsake menüü Seoste kujundus jaotises Seosed nuppu Kõik seosed.Kuvatakse kõik seostega tabelid, kus on kuvatud seosejooned. Arvestage, et peidetud tabeleid (tabeleid, mille puhul tabeli dialoogiboksi Atribuudid ruut Peidetud on märgitud) ja nende seoseid ei kuvata, välja arvatud juhul, kui dialoogiboksis Navigeerimissuvandid on märgitud ruut Kuva peidetud objektid.

  3. Klõpsake kustutatava seose seosejoont. Seosejoone valimisel kuvatakse valitud rida paksemana.

  4. Vajutage kustutusklahvi (DELETE)

  5. Access võib kuvada teate Kas soovite kindlasti valitud seose andmebaasist jäädavalt kustutada?. Kui kuvatakse see kinnitusteade, klõpsake valikut Jah.

Märkus.: Kui kumbagi tabeliseosesse kuuluvat tabelit ei kasuta ükski teine isik ega toiming või avatud andmebaasiobjekt (nt vorm), ei saa te seda seost kustutada. Enne seose eemaldamist peate sulgema kõik neid tabeleid kasutavad avatud objektid.

Lehe algusse

Vt ka

Otsinguvälja lisamine tabelisse

Mis on aken Seosed?

Kahe tabeli võrdlemine Accessis ja ainult kattuvate andmete otsimine

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.

Kogukonnad aitavad teil küsimusi esitada ja neile vastuseid saada, anda tagasisidet ja saada nõu rikkalike teadmistega asjatundjatelt.