- Laatst bijgewerkt
- Opslaan als PDF
- Pagina-ID
- 15497
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}}}\) \( \newcommand{\vecd}[1]{\overset{-\!- \!\rightharpoonup}{\vphantom{a}\smash{#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{ span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart }{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\ norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm {span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\ mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{ \ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{ \unicode[.8,0]{x212B}}\)
In deze sectie doorlopen we het proces van het maken van een tabel. Download en open de MyUniversity Database vanaf de webpagina voor deze notities.
- Klik op het tabblad Maken – gebruik de muis en klik erop om de beschikbare opties te bekijken (Tafel,Tabel Sjablonen,SharePoint-lijsten,Tafel ontwerp, enz.):
- Klik op deTafel ontwerpoptie om een proces te starten om een nieuwe tabel te maken, de afdelingstabel. U krijgt een formulier te zien waarin u velddefinities voor een tabel kunt invoeren. Een velddefinitie omvat veldnaam, gegevenstype en beschrijving. U kunt ook de primaire sleutel van de tabel instellen. Het formulier Tabelontwerp wordt hieronder weergegeven:
- Begin met het invoeren van elke veldnaam en kies Tekst als het gegevenstype. In de beschrijvingskolom kunt u een langere beschrijving van de inhoud van het veld invoeren - deze worden behandeld als opmerkingen die nuttig kunnen zijn voor iemand die uw tabellen leert kennen. Zodra je dit hebt gedaan, zou je een formulier moeten hebben dat er als volgt uitziet:
- Vervolgens stellen we de primaire sleutel voor de tabel in op het veld deptCode. Klik met de muis op de plek net links van deptCode en klik vervolgens op het Primary Key-pictogram in de linkerbovenhoek van het formulier naast de View-knop. Access gebruikt een pictogram om de deptCode weer te geven als de PK:
- Op dit punt moet u uw werk opslaan door op het pictogram Opslaan in de linkerbovenhoek van het formulier te klikken - u wordt gevraagd om de tabel een naam te geven - noem het Afdeling.
U moet zich nog steeds in de ontwerpweergave bevinden voor de afdelingstabel. Merk op dat u op de F1-functietoets kunt drukken om hulp te krijgen die relevant is voor de locatie van de muiscursor. Als uw cursor op een veldnaam staat en u drukt op F1, ziet u een pop-upvenster met suggesties van MS Access over hoe u velden een naam moet geven. Probeer dit. Probeer, voordat u verder gaat, ook op andere locaties op F1 te drukken, zoals Gegevenstype en Beschrijving. We raden u aan een deel van de beschikbare informatie te lezen om meer vertrouwd te raken met MS Access.
Gegevenstypen
MS Access biedt verschillende gegevenstypen - we bespreken Tekst, Memo, Getal, Datum/Tijd, Valuta, AutoNummering, Ja/Nee en Opzoekwizard.

Tekst
Als u opgeeft dat een veld deTekstgegevenstype, dan staat Access toe dat alle tekens in dat veld in een rij van de tabel worden geplaatst. Dit is een gebruikelijke keuze wanneer de gegevens niet in berekeningen worden gebruikt. Het gegevenstype Tekst voorziet in waarden met minder dan 256 tekens. Als u weet dat een maximale lengte van minder dan 255 geschikt zou zijn, kunt u de eigenschap Veldgrootte (besproken in de volgende sectie) gebruiken om de maximale lengte van een tekenreeks te beperken.
Memo
Een ontwerper selecteert Memo als het veld tekengegevens bevat, maar de lengte mogelijk langer is dan 255. Memo staat een maximale lengte van 63.999 tekens toe. Kijk eens naar het omschrijvingsveld van de Cursustabel: mogen deze langer zijn dan 255 karakters?
Nummer
Als een veld wordt gebruikt voor het opslaan van waarden die worden gebruikt in numerieke berekeningen (bijv. bestelde hoeveelheid), dan is Getal geschikt. De eigenschap Veldgrootte (eigenschappen worden later besproken) kan worden gebruikt om het aantal gebruikte opslaglocaties per waarde te beperken.
Datum Tijd
Als een veld datum- en/of tijdwaarden bevat, moet het gegevenstype Datum/Tijd worden gekozen. Met de eigenschap Format (later besproken) kunt u bepalen hoe deze waarden voor de gebruiker worden weergegeven.
Munteenheid
Als een veld geldwaarden bevat, moet het gegevenstype Valuta worden gekozen. Dit gegevenstype zorgt voor numerieke berekeningen die nauwkeurig zijn tot 15 cijfers links van de komma en 4 cijfers rechts van de komma.
Auto nummer
Als u AutoNummering kiest, genereert MS Access een waarde voor u wanneer een rij in de tabel wordt ingevoegd. U kunt via de eigenschap Nieuwe waarden de te genereren getallen opeenvolgend of willekeurig rangschikken. Vaak zijn controlenummers voor zaken als bestellingen, facturen, registraties etc. numeriek en kunnen we het aan het systeem overlaten om een volgende waarde voor ons te genereren.
Ja nee
Dit gegevenstype beperkt mogelijke waarden tot ja of nee.
Opzoekwizard
Soms moet u waarden beperken tot een lijst met bekende waarden (bijvoorbeeld een lijst met geslachten: man, vrouw), of tot waarden die elders in de database als primaire sleutelwaarden voorkomen. Overweeg het veld creditHours – een geschikte lijst zou kunnen zijn (1, 2, 3, 6). De Lookup Wizard is een geschikt gegevenstype voor deze situaties; wanneer geselecteerd, leidt het systeem u door een reeks vensters waar u de juiste keuzes kunt maken.
Oefeningen (Set 1)
Deze oefeningen verwijzen naar de bibliotheekdatabase.
Oefening \(\PageIndex{1}\)
Overweeg de ledentabel. DeID kaartveld is gedefinieerd met het gegevenstype AutoNummering. Experimenteer door nieuwe leden toe te voegen en je zult merken dat de id-waarden met 1 toenemen. Probeer nu de laatste twee leden die je hebt toegevoegd te verwijderen. Als je die leden weer toevoegt in welke id-waarden krijgen ze dan? Worden id-waarden hergebruikt?
Oefening \(\PageIndex{2}\)
Overweeg de boekentafel. Voeg een veld toe,paperback, die kan worden gebruikt om aan te geven of een boek al dan niet een paperback is. Kies het gegevenstype JA/NEE. Sla het ontwerp op en schakel over naar de gegevensbladweergave. Nu zult u zien hoe u dergelijke waarden invoert - MS Access biedt een vakje dat moet worden aangevinkt of niet. U kunt selecteren (een ‘Ja’) met de muis of met behulp van de spatiebalk. Je zou hiermee moeten experimenteren.
Oefening \(\PageIndex{3}\)
Overweeg de ledentabel. Eerder heb je een toegevoegdgeslachtveld. Open de ledentabel in de ontwerpweergave en wijzig het gegevenstype voor geslacht in Opzoekwizard. De wizard presenteert automatisch 3 opeenvolgende pop-upvensters waarin u:
Sla de tabel op en ga naar de gegevensbladweergave, zodat u het gegevenstype dat u zojuist hebt gemaakt, kunt testen. U zult merken dat de gebruiker een vervolgkeuzelijst ziet met daarin Mannelijk en Vrouwelijk, zodat de gebruiker geen ongepaste waarde kan invoeren/selecteren.
- specificeer dat u de zoekwaarden opgeeft;
- voer de waarden in (mannelijk en vrouwelijk);
- specificeer dat de waarden beperkt moeten blijven tot uw lijst.
Eigenschappen
Elk veld moet een gegevenstype hebben zoals hierboven besproken. Afhankelijk van het gegevenstype zal MS Access u een reeks veldeigenschappen presenteren die u kunt aanpassen aan uw tabel. We bespreken het volgende: veldgrootte, formaat, invoermasker, bijschrift, standaardwaarde, validatieregel en validatietekst, vereist, geïndexeerd, datumkiezer weergeven en nieuwe waarden.
Veld grootte
Overweeg een veld als deptCode. Stel dat de universiteit waarden van 3 en 4 tekens gebruikt voor afdelingscodes. Daarom is het redelijk om de veldgrootte in te stellen op 4 om de mogelijkheid te beperken dat een eindgebruiker per ongeluk een langere reeks tekens typt en daardoor onjuiste gegevens invoert. Op deze manier kunnen we het soort fouten dat gebruikers maken bij het invoeren van gegevens beperken en zo de algehele kwaliteit van onze database verbeteren.
Gegevensintegriteit is een serieus probleem voor databases. Het instellen van de veldgrootte voor tekstgegevens en getalgegevens is gebruikelijk. Vaak beperken organisaties de gegevens die ze verzamelen voor velden als achternaam en voornaam (bijvoorbeeld 30 tekens). Als het gegevenstype Getal is, zijn de waarden die zijn geselecteerd voor Veldgrootte waarden zoals Byte, Integer, Long Integer, enz. Dit soort waarden worden geassocieerd met een toenemend aantal geheugenlocaties dat per waarde wordt gebruikt. Een selectie van Byte beperkt de opslag tot 1 byte geheugen (8 bits), en aangezien het grootste positieve gehele getal dat in een byte kan worden opgeslagen 255 is, worden de waarden die in het veld worden opgeslagen, geforceerd binnen het bereik van 0 tot 255 te liggen. Meer informatie is direct beschikbaar als u de F1-functietoets op Veldgrootte gebruikt voor een gegevenstype Getal.
Formaat
De eigenschap Formaat wordt gebruikt om de manier aan te passen waarop tekst, getallen, datums en tijden aan de eindgebruiker worden weergegeven. Als u bijvoorbeeld een gemiddelde datum selecteert, worden waarden zoals 14 januari 2013 weergegeven als 14-jan-13; het selecteren van Long Date resulteert in de weergave januari-14-13. Zie Tabel \(\PageIndex{1}\) voor voorbeelden. Als u tekstgegevens hebt, zoals afdelingscode, kunt u de weergave in hoofdletters forceren door > op te geven als de formaatcode. Een interessante formaatspecificatie is@;Geen. Als dit wordt gebruikt en als er helemaal geen waarde is om het woord weer te gevenGeenwordt weergegeven aan de gebruiker. Nog een voorbeeld: stel dat het veld voor de Canadese SIN is. Mogelijk hebt u deze weergegeven aan gebruikers met koppeltekens tussen het 3e en 4e cijfer en het 6e en 7e cijfer. Als de SIN een tekstveld is met een lengte van 9, kan het op deze manier worden weergegeven door een formaatspecificatie van @@@-@@@-@@@ te gebruiken.
Waarde in het veld | Formaat eigendom | Weergegeven als |
---|---|---|
Barack Obama | > | BARACK OBAMA |
14 januari 2013 | Middelgrote datum | 14-jan-13 |
14 januari 2013 | Lange datum | 14-13 januari |
@;Geen | Geen | |
786456789 | @@@-@@@-@@@ | 786-456-789 |
@@@-@@@-@@@;Geen | Geen |
Invoermasker
De eigenschap Input Mask wordt gebruikt om de gebruiker te dwingen gegevens toe te voegen volgens een bepaald patroon. Dit is een andere leuke functie om de algehele kwaliteit van gegevens die aan een database worden toegevoegd te helpen verbeteren. Wanneer de cursor zich in het invoermaskergebied bevindt, verschijnt er een 'builder-knop'. Wanneer u op deze knop klikt, ziet u een lijst met populaire bedieningselementen. Als u het masker voor het telefoonnummer zou kiezen, ziet u het besturingselement!(999) 000-0000verschijnen. Als gevolg van deze keuze moet de gebruiker een 7-cijferig telefoonnummer invoeren met een optioneel 3-cijferig netnummer).
Ondertiteling
Als er geen bijschrift is, is de veldnaam de titel die wordt gebruikt in weergaven van gegevens. Soms is de veldnaam niet wat u wilt dat uw gebruikers zien. Bijvoorbeeld in plaats van de kopafdelingCodeboven een lijst met afdelingscodes, gebruikt u misschien liever de woordenAfdelingscode. Om dit te bereiken, voert u gewoon zo'n kop in de caption-eigenschap voor het veld in.
Standaardwaarde
Als een bepaalde waarde voor een veld heel gebruikelijk is, kunt u overwegen een standaardwaarde in te stellen. Als de meeste cursussen bijvoorbeeld cursussen van 3 studiepunten zijn, kan de waarde 3 worden ingesteld als de standaardwaarde voor alle nieuwe cursussen.
Validatieregel en validatietekst
Als een veld een validatieregel heeft, wordt de regel getest wanneer de gebruiker gegevens invoert. Als de test mislukt, krijgt de gebruiker een bericht met de validatietekst. Een eenvoudig gebruik hiervan zou kunnen afdwingen dat de kredieturen minder dan 10 zijn door de regel in te voeren<10en de validatietekstVoer een waarde tussen 0 en 10 in. Nogmaals, dit is een leuke functie om de algehele gegevenskwaliteit te verbeteren.
Vereist
Beschouw het veld deptName van de tabel Afdeling. Als een gebruiker gegevens invoert voor een nieuwe afdeling, is het onredelijk dat het veld deptName geen waarde heeft. Om er zeker van te zijn dat er een waarde is, maken we het veld verplicht – d.w.z. we kiezenJavoor de vereiste eigenschap.
Geïndexeerd
MS Access maakt automatisch een index (uniek – geen duplicaten) op een veld dat de primaire sleutel is. Een unieke index is een speciale interne gegevensstructuur die Access bouwt om twee dingen mogelijk te maken: (1) om snelle toegang tot rijen met gegevens te garanderen wanneer de gebruiker een waarde voor een dergelijk veld opgeeft in een query, en (2) om ervoor te zorgen dat in de sprake vangeen duplicatendat geen twee rijen van de geïndexeerde tabel dezelfde waarde voor dat veld kunnen hebben. De structuur van de indexgegevens lijkt sterk op de index die u achter in boeken ziet. Een index bestaat uit meerdere vermeldingen waarbij elke vermelding een waarde heeft (een term die in het boek wordt gebruikt) en een verwijzing (een paginanummer in een boek) – in het geval vanduplicaten toegestaaner kunnen meerdere verwijzingen zijn (meerdere pagina's waar de term voorkomt).
U kunt ervoor kiezen om een index op elk veld te hebben. Als een veld dubbele waarden kan hebben, moet u een index kiezen die duplicaten toestaat.
Datumkiezer tonen
Als het gegevenstype Datum/Tijd is, kan de gebruiker met deze selectie een datum selecteren met behulp van eenplukker- een handig hulpmiddel voor gegevensinvoer.
Nieuwe waarden
Als het gegevenstype AutoNummering is, kunt u Nieuwe waarden gebruiken om op te geven of de volgende waarde voor het veld het volgende hoogste gehele getal zal zijn, of dat het een willekeurig geheel getal zal zijn.
Oefeningen (Set 2)
In de volgende twee oefeningen werk je met je universitaire database.
Oefening \(\PageIndex{4}\)
Overweeg de afdelingstabel. Stel in de ontwerpweergave het veld deptCode in op een lengte van 4 en gebruik > als weergaveformaat. Stel de lengte van het veld deptPhone in op 10 en kies het invoermasker Telefoonnummer. Sla de tabel op en schakel over naar de gegevensbladweergave. Gebruik tabel 2.0.1 als richtlijn en voer gegevens in de afdelingstabel in.
Oefening \(\PageIndex{5}\)
Maak een cursustabel met attributen voor afdelingscode, cursusnummer, titel, korte beschrijving en studiepunten. Het veld voor kredieturen moet numeriek zijn zonder decimalen en de andere velden zijn tekstvelden. Stel het veld deptCode in op Tekst met een lengte van 4 zodat het overeenkomt met de eigenschappen van deptCode in Afdeling. Later zal het belangrijk zijn dat het deptCode-veld in zowel Department als Course hetzelfde wordt gedefinieerd. Gebruik tabel 2.0.2 als richtlijn en voer gegevens in de cursustabel in.
De volgende oefeningen hebben betrekking op de bibliotheekdatabase.
Oefening \(\PageIndex{6}\)
Beschouw de velden voornaam en achternaam in de ledentabel van de bibliotheekdatabase. Wijzig het bijschrift voor deze velden in respectievelijk Voornaam en Achternaam. Sla de tabel op en open deze opnieuw in de gegevensbladweergave. U ziet deze bijschriften bovenaan hun respectievelijke kolommen.
Oefening \(\PageIndex{7}\)
De tabel Lening heeft velden die zijn gedefinieerd met het datatype DateTime. Experimenteer met verschillende formaten voor deze datums.
Oefening \(\PageIndex{8}\)
Beschouw het id-veld in de ledentabel van de bibliotheekdatabase. Wijzig in de ontwerpweergave de increment-eigenschap van het id-veldwillekeurigin plaats vanverhoging. Dit is een onomkeerbare actie (maar u kunt de database later downloaden om een nieuwe kopie te krijgen). Voeg nu enkele nieuwe leden toe. Wat kunt u zeggen over de id-waarden die worden toegewezen?
Oefening \(\PageIndex{9}\)
Validatieregels en validatietekst zijn belangrijke functies om databasegebruikers te helpen.
- Overweeg de leningtabel en de bijbehorende datumvelden. MS Access heeft veel ingebouwde functies, waaronder Date() die altijd de datum van vandaag retourneert. Dus om ervoor te zorgen dat iemand altijd een vervaldatum invoert die later is dan vandaag, voert u in het eigenschappengedeelte voor het veld vervaldatum het volgende in:
Validatieregel: >= Datum()
Validatietekst: Voer een datum in de toekomst in.
In deze situatie voeren we een validatieregel op veldniveau in. Deze regels zijn handig wanneer we een vereiste kunnen stellen onafhankelijk van andere velden. Test het effect van deze validatieregel door over te schakelen naar de gegevensbladweergave en geldige en ongeldige waarden voor de vervaldatum in te voeren.
- Om ervoor te zorgen dat de datum geleende waarde kleiner is dan of gelijk is aan de datum geretourneerde waarde, construeren we een validatieregel die twee velden omvat. MS Access laat u deze regel niet op veldniveau invoeren; in plaats daarvan moet een dergelijke regel op tabelniveau worden gespecificeerd. Om een regel op tafelniveau in te voeren, moet u in een klein vierkantje net onder de tafelnaam klikken en kiezeneigenschappen:
en voer de eigenschappen in:
Validatieregel: [dateBorrowed]<=[dateReturned]
Validatietekst: Teruggegeven datum kan niet eerder zijn dan geleende datum.
De vierkante accolades, [ ], die in de uitdrukking voorkomen, zijn verplicht. Deze informeren MS Access over verwijzingen naar velden in de tabel.
Voer deze regel in en controleer of deze voorkomt dat de gebruiker onjuiste datums invoert.
Primaire sleutels
In deze sectie wordt ervan uitgegaan dat u de tabellen Afdeling en Cursus hebt gemaakt. Elke tabel zou een primaire sleutel moeten hebben, maar dit is slechts een vuistregel die de meeste databaseontwerpers volgen. In onze databank:
- De afdelingstabel heeft deptCode als primaire sleutel.
- De Course-tabel heeft een samengestelde primaire sleutel – een sleutel die is gevormd met behulp van twee attributen: deptCode en courseNo.
Om een primaire sleutel in te stellen, moet de tabel geopend zijn in de ontwerpweergave. U moet eerst het veld (of een combinatie van velden) selecteren en vervolgens op het pictogram Primaire sleutel klikken. Dit is eenvoudig voor de afdelingstabel, maar niet voor de cursustabel omdat de primaire sleutel uit twee velden bestaat. Omdat de PK meer dan één veld omvat, zeggen we dat dit de primaire sleutel iscomposiet.
Oefeningen (Set 3)
Oefening \(\PageIndex{10}\)
Stel de primaire sleutel in voor de afdelingstabel. Selecteer met de afdelingstabel in de ontwerpweergave het veld deptCode en klik vervolgens op de knop Primaire sleutel. Als dit is gelukt, ziet u het deptCode-veld met een sleutelpictogram ernaast:

Als MS Access uw primaire sleutel afwijst, moet u de waarden onderzoeken die u eerder hebt ingevoerd voor deptCode - er moet een dubbele waarde zijn. Als dit gebeurt, moet u de tabel in de gegevensbladweergave bekijken en de gedupliceerde waarde vinden en de nodige wijzigingen aanbrengen.
Zodra MS Access uw primaire sleutel heeft geaccepteerd, opent u de tabel in de gegevensbladweergave en experimenteert u: Hoe reageert MS Access als u probeert een nieuwe rij te maken met een bestaande primaire sleutelwaarde?
Oefening \(\PageIndex{11}\)
Stel de samengestelde primaire sleutel voor de cursustabel in. Om dit te doen, selecteert u eerst een veld en vervolgens houdt u deControletoets ingedrukt selecteer het andere veld. Selecteer beide velden en klik op de knop Primaire sleutel:
- Selecteer de deptCode (klik links van het veld deptCode).
- Om het volgende veld te selecteren dat deel gaat uitmaken van de PK: klik terwijl u de Control-toets ingedrukt houdt op het veld CourseNo (en laat nu de Control-toets los).
- Klik vervolgens op het pictogram Primaire sleutel. U ziet nu de sleutelafbeelding naast beide velden zoals in:
Als MS Access uw primaire sleutel afwijst, moet u de waarden onderzoeken die u eerder hebt ingevoerd voor deptCode en courseNo - er moet een dubbele waarde zijn. Als dit gebeurt, opent u de tabel in de gegevensbladweergave en onderzoekt u de rijen om dubbele waarden van de combinatie {deptCode, courseNo} te vinden.
Zodra MS Access uw primaire sleutel heeft geaccepteerd, opent u de tabel in de gegevensbladweergave en experimenteert u: Hoe reageert MS Access als u probeert een nieuwe rij te maken met een bestaande primaire sleutelwaarde?
Oefening \(\PageIndex{12}\)
(Geavanceerd)Later bespreken we relaties tussen tabellen. Misschien ben je bereid om dit nu te proberen. De tabellen Afdeling en Cursus zijn aan elkaar gerelateerd via het veld deptCode. Het is redelijk voor ons om te verwachten dat een deptCode-waarde in een rij van de Course-tabel ook voorkomt in een rij van de Department-tabel. Dat wil zeggen, als we een cursus voor de wiskundeafdeling opnemen, verwachten we dat de database een overeenkomstige rij in de afdelingstabel heeft. Om ervoor te zorgen dat dit het geval is, creëren we een formele relatie tussen deze twee tabellen met behulp van de Relatietool:
- Klik eerst op Databasetools. Klik vervolgens op Relaties:
- Het Relatiehulpmiddel wordt geopend en u ziet een leeg relatiediagram:
- Plaats de muis in het venster, klik met de rechtermuisknop en kies Toon tabel. Selecteer zowel Afdeling als Cursus in de lijst met tabellen en klik vervolgens op Toevoegen.
- Als beide tabellen in het diagram worden weergegeven, moet u de PK van de afdeling selecteren, deze naar de cursustabel slepen en de muisknop boven het deptCode-veld van de cursus loslaten. Als u de aanwijzingen op het scherm volgt, kunt u selecterenafdwingen referentiële integriteit (RI)en dan kom je op het volgende uit:
- Als RI wordt afgedwongen, wordt het onmogelijk om een rij in Course te hebben zonder een overeenkomende rij in Department.
U kunt uw MyUniversity-database vergelijken met de universitaire database op de webpagina voor deze notities.