Tabellen entwerfen: Felder und Datentypen

Der richtige Entwurf der Tabellen einer Datenbank und auch das korrekte Herstellen der Beziehungen zwischen den Tabellen sind die Basis für eine funktionierende Datenbankanwendung. In dieser Reihe betrachten wir den Entwurf von Tabellen von Grund auf und arbeiten uns von den richtigen Bezeichnungen über Feldnamen, Indizes, Beziehungen und Normalisierungen bis zum kompletten Datenmodell vor.

Neue Tabelle anlegen

Unter Access gibt es verschiedene Möglichkeiten, um Tabellen zu entwerfen – über die Benutzeroberfläche und per Code:

  • Mit der Entwurfsansicht der Benutzeroberfläche,
  • mit der Datenblattansicht der Benutzeroberfläche,
  • per Code mit dem DAO-Objektmodell und Befehlen wie CreateTableDef und CreateField oder
  • per Code mit den DDL-Befehlen von SQL (Data Definition Language).

In diesem Artikel schauen wir uns an, wie das Erstellen von Tabellen über die Benutzeroberfläche gelingt. Die passenden Befehle dazu finden Sie im Ribbon im Bereich Erstellen|Tabellen (siehe Bild 1). Wir wollen uns nur um lokale Tabellen kümmern, also um solche, die in der aktuellen Datenbankdatei gespeichert werden.

Ribbon-Befehle zum Anlegen neuer Tabellen

Bild 1: Ribbon-Befehle zum Anlegen neuer Tabellen

Daher reichen uns die beiden folgenden Einträge:

  • Tabelle: Erstellt eine neue, leere Tabelle in der Datenblattansicht.
  • Tabellenentwurf: Erstellt eine neue, leere Tabelle in der Entwurfsansicht.

Tabellen in der Datenblattansicht erstellen

Wenn Sie den ersten Befehl namens Tabelle betätigen, erscheint eine neue, leere Tabelle mit einigen Befehlen für die Gestaltung dieser Tabelle (siehe Bild 2).

Ribbon-Befehle zum Entwerfen der neuen Tabelle

Bild 2: Ribbon-Befehle zum Entwerfen der neuen Tabelle

Zunächst wollen wir uns jedoch die Möglichkeiten innerhalb der nun erscheinenden Datenblattansicht ansehen. Wenn Sie ein Feld mit einem bestimmten Datentyp hinzufügen wollen, klicken Sie einfach oben auf den Spaltenkopf Zum Hinzufügen klicken. Es erscheint ein Popup-Menü mit den gängigsten Datentypen (siehe Bild 3).

Datentypen für neue Felder

Bild 3: Datentypen für neue Felder

Nach der Auswahl etwa des Eintrags Kurzer Text wandert der Spaltenkopf Zum Hinzufügen klicken um eine Position nach rechts, während Sie für das neu hinzugefügte Feld einen Namen eingeben können (siehe Bild 4).

Feldname eingeben

Bild 4: Feldname eingeben

Im Gegensatz zu manchen anderen Elementen in Access können Sie den Namen des Feldes nicht nachträglich ändern, indem Sie etwa den Spaltenkopf markieren und diesen dann nochmals anklicken. Auch das Betätigen der Taste F2 wie bei anderen Elementen wie etwa im Navigationsbereich funktioniert hier nicht. Stattdessen wählen Sie aus dem Kontextmenü des Spaltenkopfes den Eintrag Feld umbenennen aus (siehe Bild 5).

Nachträgliches Umbenennen eines Feldes

Bild 5: Nachträgliches Umbenennen eines Feldes

Primärschlüsselfeld in der Datenblattansicht

Wie Sie sehen, gibt Access standardmäßig ein Feld namens ID vor. Wenn Sie mit dem Ribbon-Befehl Start|An-sich-ten|An-sicht|Ent-wurfs-ansicht oder mit dem Kontextmenübefehl Entwurfsansicht der Titelleiste der Tabelle in die Entwurfansicht wechseln, stellen Sie fest, dass dieses Feld als Primärschlüsselfeld mit dem Datentyp Autowert definiert ist (siehe Bild 6).

Das Feld ID wird automatisch als Primärschlüsselfeld des Datentyps Autowert definiert.

Bild 6: Das Feld ID wird automatisch als Primärschlüsselfeld des Datentyps Autowert definiert.

Diese Einstellung können Sie in der Datenblattansicht nicht vornehmen, sondern müssen mit dem vorgegebenen Primärschlüsselfeld Vorlieb nehmen. Das ist aber auch kein Problem, denn es wird ja automatisch ein Primärschlüsselfeld eingerichtet, dessen Namen Sie auch noch anpassen können.

Datentypen

über einen Klick auf die Schaltfläche Zum Hinzufügen klicken erhalten Sie die folgenden Datentypen zur Auswahl:

  • Zahl
  • Große Ganzzahl
  • Währung
  • Datum und Uhrzeit
  • Ja/Nein
  • Nachschlagen und Beziehung
  • Rich-Text
  • Langer Text
  • Anlage
  • Link
  • Feld berechnen (Text, Zahl, Währung, Ja/Nein, Datum/Uhrzeit)

In der Entwurfsansicht stehen noch die Felddatentypen Autowert (für Primärschlüsselfelder) und OLE-Objekt zur Verfügung.

Felddatentypen wählen

In vielen Fällen ist es offensichtlich, welchen Felddatentyp man wählen sollte – so eignet sich ein Währungsfeld am Besten, wenn Sie Euro-Beträge speichern wollen oder Datum und Uhrzeit, wenn es um Datumsangaben geht. Manchmal stehen jedoch mehrere Felddatentypen zur Auswahl, zum Beispiel für Zahlenwerte. Hier können Sie in der Datenblattansicht bereits die Einträge Zahl und Große Ganzzahl auswählen. Wo sind die Unterschiede

In Feldern mit dem Felddatenttyp Zahl können Sie Zahlenwerte im Bereich von -2.147.483.648 bis 2.147.483.647 eingeben. In Feldern mit dem Felddatentyp Große Ganzzahl geben Sie Zahlen von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 ein.

Was aber, wenn Sie Zahlen mit Nachkommastellen eingeben möchten Dazu nutzen Sie die Einstellungen im Ribbon-Bereich Felder|Formatierung (siehe Bild 7). Damit können Sie festlegen, dass es sich etwa um eine Festkommazahl handelt. Mit den beiden Schaltflächen mit den Nullen und den Pfeilen nach links und rechts stellen Sie die Anzahl der Nachkommastellen ein. Natürlich wird der Wertebereich kleiner, je mehr Nachkommastellen Sie vorsehen.

Ribbon-Einträge für die Formatierung von Zahlenfeldern

Bild 7: Ribbon-Einträge für die Formatierung von Zahlenfeldern

Mehr Optionen in der Entwurfsansicht

Für den Datentyp Zahl können Sie in der Entwurfsansicht noch den Wertebereich über die Eigenschaft Feldgröße einstellen. Hier finden Sie dann Werte wie Byte, Integer, Long Integer, Single, Double, Replikations-ID und Decimal vor.

Datentypen-Unterschiede per VBA

Den Unterschied zwischen den Datentypen für Zahlenfelder können Sie genauer herausfinden, wenn Sie sich per VBA den Wert der Eigenschaft Type des jeweiligen Feldes ansehen. Das gelingt etwa, wenn Sie im VBA-Editor im Direktbereich die folgende Anweisung absetzen:

 CurrentDb.TableDefs("tblPersonen").                           Fields("GrosseGanzzahl").Type
  16

Den Direktbereich öffnen Sie von Access aus mit der Tastenkombination Strg + G. Hier greifen wir zuerst auf das Database-Objekt der aktuellen Datenbank zu. Dieses bietet mit der Auflistung TableDefs Zugriff auf alle in der Datenbank enthaltenen Tabellendefinitionen, also die Entwürfe der Datenbanktabellen.

Darüber referenzieren wir den Entwurf der Tabelle tblPersonen. Das TableDef-Objekt dieser Tabelle bietet wiederum die Fields-Auflistung an, mit der wir auf die Felder der Tabellendefinition zugreifen können – in diesem Fall auf das Feld GrosseGanzzahl. Schließlich liefert die Eigenschaft Typ den Wert für diese Eigenschaft, in diesem Fall 16.

Das hilft uns allerdings noch nicht weiter, da wir nicht die Konstante hinter diesem Zahlenwert kennen. Diese finden wir über den Objektkatalog des VBA-Editors, den Sie über die Tastenkombination F2 öffnen.

Hier suchen wir zunächst nach der Eigenschaft Type. Davon gibt es eine ganze Reihe, unter anderem auch für die Klasse Field. Allerdings steht dort als Datentyp nur Integer und kein Hinweis auf eine entsprechende Auflistung. Nun heißt das Kürzel für Auflistung unter VBA Enum und wenn wir danach suchen, finden wir schnell auch die Auflistung DataTypeEnum, die es für DAO und ADODB gibt. Unsere obigen Befehle stammen aus der DAO-Bibliothek, also markieren wir den passenden DataTypeEnum-Eintrag.

Wenn wir die nun gefundenen Einträge, die alle mit db… beginnen, durchlaufen und nach dem Zahlenwert 16 suchen, der im unteren Bereich angezeigt wird, finden wir die Konstante dbBitInt (siehe Bild 8). Und dieser unterscheidet das Feld mit dem Felddatentyp Große Ganzzahl beispielsweise von dem Feld mit dem Felddatentyp Zahl mit dem Wert Long Integer für die Eigenschaft Feldgröße.

Ermitteln der Konstanten für einen Eigenschaftswert

Bild 8: Ermitteln der Konstanten für einen Eigenschaftswert

Welcher Zahlen-Felddatentyp

Welchen Felddatentyp sollten Sie also nun für ein Zahlenfeld wählen Früher galt die Regel: Je kleiner der Felddatentyp, desto weniger Platz nehmen die enthaltenen Daten ein. Heutzutage ist Speicherplatz in den meisten Anwendungsfällen kein Problem mehr.

Sie sollten also eher darauf achten, die Felddatentypen und die Feldgrößen großzügig genug auszuwählen. Besser, Sie haben mal Long Integer statt Integer gewählt als dass Sie später den Datentyp ändern und damit in den Entwurf des Datenmodells eingreifen müssen.

Außerdem ist es natürlich wichtig zu wissen, ob die enthaltenen Werte ganze Zahlen enthalten sollen oder auch Zahlen mit Nachkommastellen.

Und drittens müssen Sie entscheiden, wie groß die Genauigkeit bei Verwendung von Nachkommastellen sein soll. Wenn Sie Rundungsfehler vermeiden wollen, sollten Sie mit der Feldgröße Dezimal arbeiten.

Tabellenentwurf per Datenblatt deaktivieren

Wenn Sie schon lange mit Access arbeiten, wissen Sie, dass die Möglichkeit zum Tabellenentwurf über die Datenblattansicht erst mit Access 2007 eingeführt wurde. Wenn Sie lieber die Entwurfsansicht verwenden, um die Tabelle zu entwerfen, stören Sie vielleicht in der Datenblattansicht das letzte Feld zum Hinzufügen eines neuen Feldes oder die vielen Einträge zum Entwurf der Tabelle.

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar