Access Autonummerierung in Primärschlüßel

Hallo liebe Gemeinde,

meine Datenbank zickt gerade etwas rum und ich benötige ein wenig Schützenhilfe.

Ich habe folgendes Problem:
In einer Tabelle habe ich einen Primärschlüssel, der mit jedem neuen Datensatz eine Stelle weiterzählt. Es geht hier um eine Personalnummer. Die darf natürlich immer nur einmal vergeben werden.

Jetzt ist es leider etwas durcheinander gekommen und die nächste Nummer die erzeugt wird, ist höher als die nächste freie Personalnummer. Wie kann ich den Autozähler wieder in den Gleichschritt zwingen?

Vielen Dank für die Unterstützung!

Gruß, Martin

Hallo Martin, ich kann dir leider niht weiterhelfen. Bei mir hat sich alles wieder geregelt als ich die nicht benötigten Datensätze gelöscht habe. Die Anforderung an meine Datenbank bezieht sich jedoch auf Beanstandungen. Gruss Thomas

Vielen Dank für die Antwort!

Hallo Martin … normalerweise reicht es aus, wenn die Datenbank komprimiert wird … viele Grüße … Jochen

Leider kann ich Dir nicht weiterhelfen.
Gruß
Digby

Hi Martin,
ich bin nicht auf dem neuesten Stand, aber früher half Komprimieren der DB.
Good luck
Thomas

Lieber Fragesteller,
Wenn ein Datensatz gelöscht wird, wird die Nummer nicht neu vergeben, Deshalb kann es zu Lücken kommen, was aber kein Problem darstellt. Grundsätzlich könnte das Autonummernfeld auch gelöscht und wieder eingefügt werden, dann werden die Nummern neu vergeben. Aber Achtung! Wenn es von anderen Tabellen Verweise auf diese Nummer gab, dann zeigen diese Verweise nicht mehr auf den richtigen Satz. Studiere ein paar Artikel zu dem Thema. LG, W

Hallo Martin,

du arbeitest mit Autowerten. Diese haben den Nachteil, dass diese die Werte nur einmal fortlaufend vergeben und Werte gelöschter Datensätze nicht mehr wieder hergestellt werden können.

Es ist besser, die ID’s selber einzutragen mittels eines Long Integer- oder Textfeldes.

Wenn du eine Sicherungskopie deiner Datenbank hast, kannst du die Daten über diese wieder herstellen.

Gruß
Horst Müller

Wenn man die automatische Nummerierung wählt, geht es gar nicht rückgängig zu machen (es sei denn, man löscht den Primärschlüssel und vergibt ihn neu)! Das ist ja auch der Sinn und Zweck eines eindeutigen Schlüssels, dass er nur einmal vorkommen kann: Wenn Müller z. B. Nr 4711 hatte und dann der Datensatz gelöscht wird, wird die Nummer nicht wieder vergeben, der nächste ist dann 4712… Aber so dramatisch ist das doch nicht, oder sortierst Du die Daten am Ende nach der Personalnummer?

Besten Dank, es hat geklappt. Musste allerdings den nächsten Eintrag dann manuell erstellen, es ging aber!

Besten Dank für Deine Rückmeldung!

Super, so ging es!
Besten Dank!

Hi, vielen Dank erstmal! Ich habe es mit dem komprimieren der Datenbank wieder in den Griff bekommen.

Ich habe das extra so gemacht, weil ich dann die Personalnummer nur einmal vergeben muss und in der Tabelle Arbeitszeiten wird dann automatisch ein neuer Eintrag mit der nächsten Nummer generiert.

Dennoch, lieben Dank für die Hilfestellung.

VG!

Lieben Dank für die Antwort.

Ich habe es mit dem Komprimieren wieder in den Griff bekommen.

VG!

Vielen Dank für die Antwort!

Das Problem war ja das die nächste freie Nummer irgendwie schon vergeben war. Es musste also auf die letzte vergebene Nummer zurück gestellt werden. Sonst hätte ich eine Lücke in der Abfolge der Personalnummern gehabt.

Es gibt eine Eingabemaske und von dort landen die Daten in verschiedenen Tabellen und wenn ein neuer Datensatz generiert wird, zählt der Aurtowert in allen Tabellen ein Stelle weiter. So beziehen sich alle Tabellen auf die Gleiche Personalnummer. Wenn jetzt die Zähler unterschiedlich zählen passt da nix mehr zusammen.

VG!

Wie bereits gesagt: Es ist doch relativ schnurz, ob die Personalnummern eine „Lücke“ haben oder nicht, Hauptsache sie sind eindeutig! Und wenn eine Personalnummer schon einmal vergeben war und die Person (Datensatz) gelöscht wurde, taucht diese Nummer als Autowert nicht mehr auf. Einzige Möglichkeit ist die händische Vergabe der Personalnummern (statt Autowert also Long Integer), dann ist alles möglich, aber lästig. Ich verstehe bloß nicht ganz, weshalb Du so an „lückenlosen“ Personalnummern hängst, als Ordnungskriterium kannst Du doch einfach eine fortlaufende Nummer einrichten, wenn es denn so wichtig ist

Das ist schon richtig, eigentlich wäre es egal wenn eine Lücke entsteht.
Das Problem ist nur es lassen sich keine neuen Mitarbeiter mehr anlegen. Es kommt eine Fehlermeldung das der Wert bereits vergeben sei, denn in einer Tabelle gab es Lücken und in einer anderen nicht. Demnach musste ich die Tabellen wieder in den Gleichschritt bringen.
Hat mit komprimieren auch geklappt.

kann leider nicht helfen

Da müßtest Du erstmal verraten, wie Du das umgesetzt hast, daß „mit jedem Datensatz eine Stelle weitergezählt“ wird?
EIgentlich kann man dafür ein Feld vom Typ „Autowert“ verwenden, aber das ist bei Dir ja nicht der Fall, sonst hättest Du es ja geschrieben.

Wenn Du Datensätze über Formulare anlegst, kannst Du das machen, indem Du in das Feld der Personalnummer eine entsprechende Funktion in der Eigenschaft „Standardwert“ einträgst. Läßt einfach das Max dieses Feldes + 1 eintragen.

Wenn Du aber direkt in Tabellen arbeitest, geht das nicht so ohne weiteres.