Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Office 365: Access Grundkurs

Mögliche Fehlerquellen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Damit die Referentielle Integrität funktioniert, wird geprüft, ob es sich bei den verknüpften Feldern um solche mit dem passenden Datentyp handelt und ob im Fremdschlüssel eventuell schon ungültige Daten enthalten sind.

Transkript

Bisher gibt es die referentielle Integrität nur zwischen diesen beiden Tabellen. Die sind sozusagen abgesichert, das muss ich jetzt für die übrigen auch machen, da diese Feldnamen sehr technisch sind, kann ich immer gucken, ich muss von ID zur passenden Referenz, deswegen lege ich die auch so technisch an, dann gucke ich hier nochmal ID, dann Referenz, referentielle Integrität und Erstellen. Das geht also relativ zügig, wenn man sich jetzt an seinem Datemmodel orientieren kann und hier die Namen enthalten bei mir ja auch immer den Namen des Primärschlüssels. Da brauche ich also nicht mehr lange drüber nachzudenken, hier haben wir es schon als Erstes nicht kreuzungsfrei, das ist zwar zu lösen, aber wird dann nicht übersichtlicher, es können wir uns gleich nochmal angucken, also auch hier zum Fremdschlüssel und dort den letzten Fremdschlüssel, und wenn ich es drauf anlege könnte ich jetzt hingehen und dieses deutlich nach da ziehen, dann haben was leidlich kreuzungsfrei, aber Sie sehen, dann handelt man sich andere Probleme an, hier nachdem, welcher Fremdschlüssel oben steht, müssen Sie dann gucken, dass Sie möglichst die kürzere Tabelle hier haben, sonst laufen die Verbindungslinien nämlich durch die Tabellen, finde ich, ehrlich gesagt, auch nicht übersichtlicher, und es braucht tatsächlich auch mehr Platz, ich versuche die also immer so zulegen, dass Sie an so einem Kreuzungspunkt nicht senkrecht sind, sonst kann man nämlich wenn ich das wirklich senkrecht mache, was einig eleganter aussieht, wenn ich das so sagen darf, kann man nicht meh wirklich gut sehen, was zusammen gehört, also, wenn schon Kreuzung, dann wenigstens so, dass man sieht, was, wozu gehört. Das wäre jetzt also sozusagen, die Übersetzung meines ursprünglichen Datenmodells, indem tatsächliche auch mal die Pfeile drin waren, dann würde ich jetzt vergleichen: ist dieser Entwurf identisch mit diesem Entwurf, ich speichere nochmal das Layout, mir wird hier nicht gespeichert, und dann wäre ich soweit zufrieden. Jetzt könnte sich allerdings passieren, dass das nicht klappt. Ich habe das mal vorbereitet, wenn ich an dieser Stelle zwei neue Tabellen aufnehme, die habe ich extra zu Testzwecken gemacht, ich zeige sie Ihnen einmal kurz, eine Mastertabelle, die hat eine ganz normale ID in meinem Autowert und völlig beliebigen Text und eine Details-Tabelle, in diesem Moment noch inhaltsfrei und dort könnte ich eine Zahl übernehmen. Ich habe mir jetzt die Mühe gespart, ein Kombifeld zu machen, denn ich weiß, es gibt Zahlen 1, 2, 3. Da steht noch nichts drin, es kann also noch nichts passieren und ich kann tatsächlich, anstatt oben im Entwurf auf Tabelle anzeigen zu gehen, kann ich auch von hier Tabellen reinziehen. Ich werde also diese beiden Tabellen jetzt hier tatsächlich mal daneben so ein bisschen anfügen, die Fliegen nachher wieder raus und da Sie sehen, was Ihnen passieren kann und versuche jetzt, wie eben schon gezeigt, den Primärschlüssel hier auf den Fremdschlüssel zu legen. Natürlich mit referentieller Integrität, Sie haben gesehen, hier steht noch nichts drin, Und bei dem Erstellen kommt die erste Fehlermeldung. Die ist ein bisschen irreführend. Dieselbe Anzahl an Feldern ist nicht genau das, was man hier lesen sollte, tatsächlich es ist nämlich der falsche Datentyp. Wenn ich also nach dem "ok" nicht weiterkomme, ich muss jetzt hier abbrechen, ich speichere die trotzdem schon mal, dann gucke ich mir jetzt mal einfach an, was in den Master steht im Entwurf. Dort steht nämlich dieses ein Autowert mit der Feldgröße Long. Das Integer lässt man immer weg, es ist zwar offiziellen Long Integer, aber man sagt immer nur Long. Der wird versucht bei den Details in den Entwurfsansicht mit einer Referenz zu verbinden, die single ist. Nun könnte man sagen: Single ist größer, das kann ja auch nichts werden, denn da könnte ich größere Zahlen eintragen. Also stelle ich das mal auf Byte, das heißt, diese Daten in den Details können maximal die Zahlen 0 bis 255 sein und die sind garantiert Element von einer Long-Zahl, also wieder die Details, nein, die sind schon da, nur ein bisschen weiter nach rechts fahren also wieder neu verbinden von der "mastrID" zu "DateimastrIDRef", mit referentieller Integrität erstellen und gleiche Meldung. Die wird so lange kommen, bis wir den Datentyp korrigiert haben, also in den Details muss es auch hier ein Long sein. und ok, damit kann ich jetzt die Beziehung herstellen, also auf die Referenz und nach dem Erstellen ist die drin. Das wäre jetzt in Ordnung. Ich nehme die, aber noch mal raus um in die andere Fehlermeldung zu zeigen, also ich habe den Mittelteil angeklickt, Entfernen-Taste gedrückt und ja die soll weg. wenn Sie nämlich schon eine Datenbank haben, wo bereits Daten gibt und sei es nur, wie wird das auch machen mal für ein paar Testdaten, dann trage ich jetzt hier mal [] für einen einzigen Datensatz einen neuen einm und Sie erinnern sich es gibt nur drei Master Datensätze, jetzt versuche ich hier die Zahlen 1, 2, 3 mit der Referenz auf einen neuen zu verbinden. Und mit dem Erstellen gibt es die sehr umfangreiche Fehlermeldung, die nichts anderes sagt, als in Tabelle Details steht irgendei Miss drin, denn es in Master nicht gibt. Das ist die zweite Variante die Ihnen passieren kann. Die erste sagt: die Datentypen passen nicht, diese sagt: in den Daten steht was ungültiges drin und zwar immer auf der Detailseite. Die können Sie nicht verbinden, solange Sie referetielle Integrität anfordern, und nutzen Sie bitte nicht die Lösung, da dann verzichte ich eben drauf. Das ist wie gesagt, das Ende einer Datenbank ,sondern Sie müssen hier die Leichen raussuchen und dann die referentielle Integrität einzurichten. Wenn das nur zu Testzwecken drinsteht macht es keine Probleme, dann ändern Sie die Daten eben. Wenn das eine echte Datenbank ist, dann wissen Sie, die taugt nichts, die hat Leichen drin gehabt. Jetzt können wir das hier wieder rausschmeißen und auch gleich in den echten Tabellen, also das war nur die Anzeige in den Beziehungen. Jetzt gehe ich tatsächlich hin und lösche hier mit der Entfernen-Taste ersten die Details und zweitens die Master. Damit es ist hier sozusagen wieder die echte Datenbank, und referentielle Integrität kann sowieso nur zwischen Tabellen dieser Datenbank hergestellt wirden. Es geht nicht zwischen verknüpften Tabellen, die aus einer anderen Datenbank kommen, denn dort könnten Sie heimlich Daten ändern, während diese Datenbank das nicht mitkriegt. Also es kann nur mit Tabellen innerhalb einer einzigen Datenbank sein. Jetzt ist die Datenbank sicher, und ich muss jetzt für eines der Elemente hier diese Combobox ausschalten, damit ich überhaupt wieder ungültige Daten eintragen dürfte, also ich mache das mal für die Fahrer zwischendurch, dann können wir hier schon schließen in den Lieferungen. Im Entwurf werde ich jetzt für die "FahrrIDRef" beim Nachschlagen einfach nur dieses Listeneinträge wieder auf 'Nein' stellen. Damit darf ich laut dieser Eigenschaft alles eingeben, und dann können wir an der Stelle mal den Fahrer auf 99 setzen. Das war eine 4, das kann mehr merken. Die 99 gib es nicht in der Liste, aber das will ich gar nicht wissen, ich gehe jetzt mit Tab weiter, die Liste hat mich raus gelassen, da wäre sonst schon die Meldung gekommen. Aber sobald ich jetzt dieses Feld verlasse, nämlich in die nächste Zeile gerate, da kommt jetzt die Meldung, das ist die Referentielle Integrität, die mich zwingt, gültige Werte zu nehmen. Die wird beim Verlassen des Datensatzes geprüft, denn wie auch hier es können ja mehrere Fremdschlüssel existieren, und da habe ich keine Chance. Ich kann diesen Datensatz nicht speichern, das heißt im übrigen auch ich kann ihn nicht verlassen. Wenn ich jetzt sogar versuche, Access zu beenden, muss vorher das Fenster geschlossen werden, dafür muss vorher der Datensatz gespeichert werden, das geht nicht, früher konnten Sie tatsächlich Access nicht beenden. Inzwischen kommt eine Fehlermeldung, die dann sagt: Sie können Access beenden, aber dabei verlieren Sie leider die Änderung an diesen Datensatz, weil sie nicht gültig sind. Der offizielle [] hier rauszukommen, ist die ESC-Taste, eventuell zwei Mal, wenn Sie mehrere Sachen geändert haben. Also die referentielle Integrität ist völlig sicher. Sie können jetzt an dieser Stelle keine ungültigen Daten mehr eingeben, und wenn ich hier nur Listeneinträge auf "Ja" stelle, dann vor allem deswegen, damit die Meldung hübscher wird. Wenn ich jetzt also das Gleiche nochmal mache und hier die neuen 99 eingebe, dann wird sofort beim Verlassen des Feldes eine hübschere Meldung kommen, aber das alleine, ich gehe jetzt wieder mit ESC raus, das alleine würde nicht verhindern, dass ich möglicherweise den Fahrer lösche oder per VBA da was reinschreibe. Damit ist diese Datenbank völlig sicher. Es können nur noch brauchbare Daten drin stehen, und mein erster Handgriff in einer anderen Datenbank ist immer sofort Datenbanktools-Beziehung aufzurufen und mir das hier anzugucken. Da sehe ich erstens alle Felder, sehe wo die Primärschlüssel sind, sehe die Beziehung, ob sie überhaupt welche gibt. Sie werden erschreckt sein, wie viele Datenbank überhaupt keine Beziehung haben. Und das erklärt mir sozusagen den Geist der Datenbank, wer hängt, mit wem zusammen und wie. Und deswegen ist das das Kernstück einer Datenbank, die Tabellen sind die Methoden zum Speichern, aber die referentielle Integrität sorgt dafür, dass die Daten auch in sich schlüssig sind.

Office 365: Access Grundkurs

Erwerben Sie die notwendigen Kenntnisse, um mit Access in Office 365 leistungsfähige Datenbanken zu erstellen.

6 Std. 18 min (75 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:08.09.2016
Laufzeit:6 Std. 18 min (75 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!