Autowert festlegen

Immer wieder erhalte ich die Frage, ob und wie man den Autowert anpassen kann – beispielsweise, um diesen bei einem bestimmten Nummernkreis beginnen zu lassen, sagen wir bei 1200001. Zusätzlich sollen die Werte dann natürlich auch noch durchnummeriert sein. Also schauen wir uns in diesem Artikel einmal an, welche Möglichkeiten wir haben und ob dies überhaupt sinnvoll ist.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1802_AutowertFestlegen.accdb.

Standard-Autowert

Wenn Sie einer Tabelle ein Autowert-Feld hinzufügen, können Sie zwei Einstellungen für die Eigenschaft Neue Werte vornehmen: Inkrement und Zufall. Dort findet sich nicht etwa eine Einstellung, mit der Sie den Startwert oder das Inkrement selbst festlegen können (siehe Bild 1).

Zwei Varianten für den Autowert

Bild 1: Zwei Varianten für den Autowert

Die Einstellung Zufall ist für unsere Zwecke gar nicht geeignet, also begnügen wir uns vorerst mit Inkrement. Damit erhalten wir, wie nicht anders zu erwarten, ein Autowert-Feld, dass mit dem Wert 1 initialisiert wird (siehe Bild 2).

Normales Verhalten des Autowertfeldes

Bild 2: Normales Verhalten des Autowertfeldes

Autowert per Code hochsetzen

Die erste Möglichkeit, den Autowert hochzusetzen, ist per Code. Sie erstellen einfach so viele Datensätze, bis die gewünschte Zahl erreicht ist:

Public Sub AutowertHochsetzen()
    Dim db As DAO.Database
    Dim l As Long
    Set db = CurrentDb
    For l = 1 To 100000
        db.Execute "INSERT INTO tblAutowerte(Wert)                               VALUES('')", dbFailOnError
    Next l
    db.Execute "DELETE FROM tblAutowerte", dbFailOnError
End Sub

Das dauerte bei 100.000 Datensätzen auf dem Testsystem allerdings schon knapp eine Minute. Das Ergebnis überzeugt allerdings. Man muss nur schauen, dass man nicht zuviele Datensätze hinzufügt – dann war die Arbeit umsonst (siehe Bild 3).

Hochsetzen des Autowerts per Code

Bild 3: Hochsetzen des Autowerts per Code

Autowert direkt setzen

Es geht allerdings auch noch einfacher – und vor allem schneller. Dabei setzen Sie den Autowert einfach manuell! Das gelingt allerdings nicht in der Datenblattansicht, denn dort wird der Autowert immer vom System vergeben. Aber wenn Sie die INSERT INTO-Anweisung nutzen, können Sie den Wert für ein Autowert-Feld selbst festlegen. Die erledigen Sie dann etwa wie folgt:

Public Sub AutowertPerINSERTINTO()
    Dim db As DAO.Database
    Set db = CurrentDb
    db.Execute "INSERT INTO tblAutowerte(AutowertID,            Wert) VALUES(1000000, 'Test')", dbFailOnError
End Sub

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