Base – Kundennummer automatisch

Hallo,

ich habe bei der Durchsicht leider keinen entsprechenden Eintrag gefunden. Sollte er trotzdem schon vorhanden sein, bitte ein kurzer Hinweis darauf.

Ich möchte in einer Datenbank einen fortlaufende Nummer (ab einem vorzugebenden Startwert), wie z. B. eine Kundennummer, automatisch erstellen. Das bedeutet, dass die höchste Kundennummer+1 in einem neuen Datensatz automatisch erscheinen soll.

Leider habe ich trotz vieler Versuche keine Lösung finden können.

Vielen Dank für Eure Hilfe.

capitulum

Das dürfte sich ähnlich (wenngleich noch einfacher, da kein Bezug zum aktuellen Monat) wie bspw. die automatische Rechnungsnummer in der Beispiel-Datenbank “Faktura.pb” gestalten.

Einfach eine Variable definieren, z.B. “Kd_Nr” (bei “Datenbank” → “Eigenschaften”), die bei neuen Kunden-Datensätzen in der Kunden-Tabelle (so wie die Rechnungsnummer) eins hochgezählt wird (“Feldeigenschaften” → “Rechenfeld” → “Voreinstellungsformel für einen neuen Datensatz” → “LET Kd_Nr = Kd_Nr +1”).

Diese Methode funktioniert zwar, sie hat aber eine Eigenschaft, die gelegentlich unerwünscht ist: Die Kundennummer wird nämlich bei jedem Klick auf “Neuer Datensatz” um 1 erhöht, auch wenn man den Datensatz gar nicht speichert. Dadurch können Lücken in der Nummernabfolge entstehen.

Für fortlaufende Datensatznummern gibt es seit einiger Zeit die Feldeigenschaft “Automatisch erzeugtes Schlüsselfeld”. Man findet es im Dialog “Feldeigenschaften” auf der Karteikarte “Prüfung”. Die obige Voreinstellungsformel ist dann nicht mehr notwendig und sollte gelöscht werden.

Die einzige Schwierigkeit bei automatisch erzeugten Schlüsselfeldern besteht in der Festlegung eines Startwerts. Diese ist nicht vorgesehen, sodass die Zählung in der Regel mit 1 beginnt. Man kann jedoch einen Startwert festlegen, indem die Eigenschaft “Automatisch erzeugtes Schlüsselfeld” zunächst abgeschaltet, dann ein Datensatz mit der gewünschten Startnummer angelegt und anschließend die Eigenschaft “Automatisch erzeugtes Schlüsselfeld” wieder eingeschaltet wird. Die weitere Zählung erhöht immer die aktuell größte Nummer um 1.