Danke für den Tipp, hab schon nachgeschaut. Ich hab nichts
gefunden, mein Lehrer seltsamerweise doch. Hat Microsoft
da eine "Schüler-Ärger-Falle" eingebaut? Unser Lehrer will
am 17.2.2003 die Lösung bringen.
ich hab' mir deine Originalanfrage gesucht...
Also folgendes:
Prinzipiell wird ein Primärschlüssel dazu verwendet um aus einer
tabbellenförmigen Datensammlung sinnvolles zu machen.
Erst durch den Einsatz von Schlüsseln ist es möglich die Funktionen eines
relationalen DBS zu nutzen. So kennzeichnet der Primärschlüssel ein
Datenbankfeld, das als eindeutiges Feld eine eindeutige Identifizierung
eines Datensatzes zulässt. Der zugeordnete Sekundärschlüssel einer
verbundenen Tabelle dagegen zeigt im Fall einer Abfrage die 'Untedatensätze'
die dem Hauptdatensatz zuzuordnen sind.
So ließe sich mit deinem Beispiel des Zeugnissystems das so erklären:
Die erste Tabelle enthält alle Namen der Schüler und ein Feld mit einer
fortlaufenden Nummer (meinetwegen ein AutoNum - Feld, das immer dann um 1
erhöht wird wenn ein neuer Name eingegeben wird)
Die 2. Tabelle enthält alle Unterrichtsgegenstände und die Zeugnisnoten für
JEDEN Schüler. Um nun erkennen zu können welche Gegenstände und Noten zu
welchem Schüler gehören, muss ein Feld in dieser Tabelle bestehen, das die
Schülernummer enthält(Sekundärschlüssel)
Dieser Sekundärschlüssel kann nun wärend der Eingabe durch eine Funktion
automatisch gefüllt werden oder aber auch händisch eingegeben werden.
(Achtung! beide Felder müssen den gleichen Datentyp aufweisen! z.B. Long
Integer)
Meist findet diese Technik Anwendung, wenn du eine Formular mit einem
Unterformular erstellt hast.
In den Datenfeldern des Hauptformulars stehen die Schülerdaten und im
Unterformular die Gegenstände und die Noten. Mit einer Funktion ließe sich
nun folgendes realisieren - immer wenn ein neuer Gegenstand eingegeben wird,
wird in das Schülernummernfeld die Schülernummer automatisch aus den
Schülerdaten übernommen und eingetragen.
Baust du dann eine Abfrage, an der die beiden Tabellen beteiligt sind, dann
werden für jeden Schüler ALLE Gegenstände und ALLE Noten angezeigt. Das
Abfrageergebnis kannst du dann einschränken, indem du bei den Gegenständen
oder den Noten ein Kriterium vergibst - also = 'Deutsch' oder Note = 5.....
im Folgenden findest du eine Definition aus dem ACCESS - Hilfesystem.....
....und seht euch die Nordwind-DB an... da kannst du vieles herausholen!!
Welche Primärschlüsselart soll verwendet werden?
Die Stärke eines relationalen Datenbanksystems wie Microsoft Access liegt in
der Fähigkeit, unter Verwendung von Abfragen, Formularen und Berichten in
unterschiedlichen Tabellen gespeicherte Informationen schnell zu finden und
zusammenzuführen. Damit diese Fähigkeit zum Tragen kommt, sollte in jeder
Tabelle ein Feld oder eine Gruppe von Feldern enthalten sein, das/die jeden
einzelnen Datensatz der Tabelle eindeutig identifiziert. Diese Information
wird als Primärschlüssel der Tabelle bezeichnet. Nachdem Sie einer Tabelle
einen Primärschlüssel zugewiesen haben, verhindert Microsoft Access, um die
Eindeutigkeit zu gewährleisten, dass Duplikate oder Nullwerte in
Primärschlüsselfelder eingegeben werden.
In Microsoft Access können drei Primärschlüsseltypen definiert werden:
AutoWert-, Ein-Feld- und Mehr-Felder-Primärschlüssel.
AutoWert-Primärschlüssel
Ein-Feld-Primärschlüssel
Mehr-Felder-Primärschlüssel
AutoWert-Primärschlüssel
Ein Feld des Datentyps AutoWert kann so eingestellt werden, dass mit jedem
der Tabelle hinzugefügten Datensatz automatisch eine fortlaufende Nummer
eingegeben wird. Das Zuweisen eines solchen Feldes als Primärschlüssel einer
Tabelle ist das einfachste Verfahren zum Erstellen eines Primärschlüssels.
Wenn Sie vor dem Speichern einer neu erstellten Tabelle keinen
Primärschlüssel festlegen, fragt Microsoft Access, ob es einen
Primärschlüssel für Sie erstellen soll. Wenn Sie auf Ja klicken, erstellt
Microsoft Access einen AutoWert-Primärschlüssel. Wird die Tabelle mit
Datenbankreplikation verwendet, sind weitere Überlegungen zu
berücksichtigen. Weitere Informationen zu Autowert-Felder und Replikation in
einer Microsoft Access-Datenbank anzeigen.
Ein-Feld-Primärschlüssel
Wenn Sie ein Feld mit eindeutigen Werten haben, wie z.B. Personalnummern
oder Artikelnummern, können Sie dieses Feld als Primärschlüssel festlegen.
Enthält das als Primärschlüssel ausgewählte Feld Duplikat- oder Nullwerte,
verhindert Microsoft Access das Festlegen des Primärschlüssels. Sie können
eine Abfrage zur Duplikatsuche ausführen, um die Datensätze zu ermitteln,
die Duplikate enthalten. Wenn es nicht möglich ist, die Duplikateinträge
durch das Bearbeiten der Daten zu entfernen, können Sie entweder ein Feld
des Datentyps AutoWert hinzufügen und es als Primärschlüssel festlegen, oder
Sie können einen Mehr-Felder-Primärschlüssel definieren.
Mehr-Felder-Primärschlüssel
In Situationen, in denen die Eindeutigkeit eines einzelnen Feldes nicht
gewährleistet werden kann, können Sie zwei oder mehr Felder als
Primärschlüssel festlegen. Dies geschieht am häufigsten bei der Tabelle, die
in einer m:n-Beziehung zum Verknüpfen von zwei anderen Tabellen verwendet
wird. In der Beispieldatenbank Nordwind ist dies z. B. die Tabelle
Bestelldetails, die die Tabellen Bestellungen und Artikel miteinander
verknüpft. Ihr Primärschlüssel besteht aus zwei Feldern: Bestell-Nr und
Artikel-Nr. Die Tabelle Bestelldetails kann viele Bestellungen und Artikel
enthalten, aber jeder Artikel kann pro Bestellung nur einmal aufgeführt
werden. So entsteht durch die Kombination der Felder Bestell-Nr und
Artikel-Nr ein entsprechender Primärschlüssel.
Ein anderes Beispiel ist eine Lagerbestandsdatenbank, die einen
Primärschlüssel Artikel-Nr aus zwei oder mehr Feldern verwendet (Artikel und
Einzelteil).
Anmerkung Wenn Sie sich beim Auswählen einer geeigneten Feldkombination
für einen Mehr-Felder-Primärschlüssel nicht sicher sind, fügen Sie ein Feld
des Datentyps AutoWert hinzu und legen es als Primärschlüssel fest. Es
empfiehlt sich z. B. nicht, die Felder Vorname und Nachname für einen
Primärschlüssel zu kombinieren, da möglicherweise Duplikate dieser
Feldkombination auftreten können.
"Markus Jung" <www.jung...@web.de> schrieb im Newsbeitrag
news:032a01c2d5d6$51b15910$a601...@phx.gbl...