Numerische Autowerte einstellen

Autowertfelder verwendet man, um sich keine Sorgen mehr um die automatisch vergebenen Werte für Primärschlüsselfelder machen zu müssen. Manchmal geraten die Werte dieser Felder allerdings aus dem Takt oder Sie möchten selbst festlegen, welchen Wert der nächste Datensatz erhalten soll. Dieser Beitrag zeigt, wie Sie die Autowerte in Ihren Tabellen im Griff haben.

Die meisten Tabellen in Access-Datenbanken (und auch in anderen Datenbanksystemen) verwenden einen automatisch hochzählenden Wert in den Primärschlüsselfeldern. Unter Access stellen Sie dazu einfach den Eintrag Autowert als Felddatentyp ein. Legen Sie dann einen neuen Datensatz an, ermittelt Access für das Autowertfeld den größten bisher vergebenen Wert in diesem Feld und addiert eins hinzu.

Der größte bisher vergebene Wert muss dabei aber nicht der größte Wert sein, den die Tabelle anzeigt. Wenn Sie einer Tabelle einen Datensatz hinzufügen, der im Autowertfeld den Wert 2 erhält und Sie löschen diesen Wert anschließend wieder, wird der nächste neue Datensatz dennoch mit dem Wert 3 versehen (siehe Bild 1).

Wurde der neueste Datensatz gelöscht, wird die ID nicht nochmals vergeben.

Bild 1: Wurde der neueste Datensatz gelöscht, wird die ID nicht nochmals vergeben.

Wenn Sie möchten, dass nach dem Löschen des neuesten Datensatzes mit der ID 2 der nächste neue Datensatz wieder den Wert 2 erhält, können Sie die Datenbank komprimieren. Dann wird die Information, welche ID zuletzt vergeben wurde, zurückgesetzt.

Sie sollten das Design des Datenmodells jedoch so wählen, dass es nicht nötig ist, den Primärschlüsselwert mit bestimmten Werten zu füllen – dieser sollte nur zur eindeutigen Kennzeichnung eines Datensatzes dienen und um über Fremdschlüsselfelder Beziehungen zwischen Tabellen herzustellen.

Datensatz mit bestimmtem Primärschlüsselwert unter DAO anlegen

Gelegentlich kann es jedoch dazu kommen, dass ein Datensatz einen bestimmten Primärschlüsselwert erhalten soll. Beim Hinzufügen von Datensätzen über die Benutzeroberfläche können Sie dies nicht beeinflussen. Dazu benötigen Sie eine INSERT INTO-Abfrage, welche nicht nur die Werte der übrigen Felder, sondern auch den Wert für das Primärschlüsselfeld übergibt. Wenn Sie im Beispiel aus dem Screenshot einen Datensatz mit der Nummer 2 anlegen wollen, benötigen Sie die folgende Abfrage:

INSERT INTO tblKunden(KundeID, Vorname, Nachname) VALUES(2, 'Hermann', 'Meier')

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar