Access, Nummerierung für Datensätze mit gleichem FS
Wie kann ich alle Datensätze in einer Tabelle, die den gleichen Wert in einem Feld haben, durchnummerieren lassen?
Guten Morgen liebes Forum
Ich stehe vor einem ziemlichen Problem:
Ich habe eine Tabelle "Seriennummer". In dieser Tabelle existiert ein Feld "Verwqf".
Dieses erhält Fremdschlüssel. Nun sollen alle Datensätze mit dem gleichen Wert im Feld "Verwqf" durchnummeriert werden.
Also zum Beispiel:
Verwqf: Zähler:
23 1
23 2
23 3
23 4
12 1
12 2
12 3
8 1
7 1
7 2
7 3
Sobald ein neuer Datensatz mit z.B. Verwqf 23 erfasst wird erhält er den Zähler 5. Wird er gelöscht und wieder erstellt wird dem neuen auch die 5 vergeben, und nicht die 6.
Ist dies Möglich?
MfG Valume
Guten Morgen liebes Forum
Ich stehe vor einem ziemlichen Problem:
Ich habe eine Tabelle "Seriennummer". In dieser Tabelle existiert ein Feld "Verwqf".
Dieses erhält Fremdschlüssel. Nun sollen alle Datensätze mit dem gleichen Wert im Feld "Verwqf" durchnummeriert werden.
Also zum Beispiel:
Verwqf: Zähler:
23 1
23 2
23 3
23 4
12 1
12 2
12 3
8 1
7 1
7 2
7 3
Sobald ein neuer Datensatz mit z.B. Verwqf 23 erfasst wird erhält er den Zähler 5. Wird er gelöscht und wieder erstellt wird dem neuen auch die 5 vergeben, und nicht die 6.
Ist dies Möglich?
MfG Valume
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 123496
Url: https://administrator.de/contentid/123496
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
3 Kommentare
Neuester Kommentar
Prinzipiell: Ja
Ich hoffe, VBA ist kein Fremdwort für Dich.
Für die vorhandenen Datensätze:
In VBA die Tabelle, sortiert nach Verwgf, öffnen, Datensatz für Datensatz durchgehen und jeweils eine um 1 höhere Nummer ins Feld Zähler eintragen, bei Änderung von Verwgf wieder bei 1 anfangen.
Für neue Datensätze wirds etwas problematischer, da müsste man erstmal klären, was passiert wenn jemand nicht den letzten Datensatz, sondern einen davor löscht. Sollen die Lücken dann auch gefüllt werden?
Desweiteren, wie kommen die Datensätze da rein? Über ein Formular, über direkten Tabellenzugriff, per ODBC?
Und falls mehrere User gleichzeit dran arbeiten wirds richtig kompliziert, weil dann die Emittlung und Eintragung zwingend in einer Transaktion stattfinden muß und man die Tabelle sperren muß, damit nicht mehrere das gleichzeitig machen.
Was spricht eigentlich gegen einen Autowert und man hat halt Lücken bei Löschungen?
Ich hoffe, VBA ist kein Fremdwort für Dich.
Für die vorhandenen Datensätze:
In VBA die Tabelle, sortiert nach Verwgf, öffnen, Datensatz für Datensatz durchgehen und jeweils eine um 1 höhere Nummer ins Feld Zähler eintragen, bei Änderung von Verwgf wieder bei 1 anfangen.
Für neue Datensätze wirds etwas problematischer, da müsste man erstmal klären, was passiert wenn jemand nicht den letzten Datensatz, sondern einen davor löscht. Sollen die Lücken dann auch gefüllt werden?
Desweiteren, wie kommen die Datensätze da rein? Über ein Formular, über direkten Tabellenzugriff, per ODBC?
Und falls mehrere User gleichzeit dran arbeiten wirds richtig kompliziert, weil dann die Emittlung und Eintragung zwingend in einer Transaktion stattfinden muß und man die Tabelle sperren muß, damit nicht mehrere das gleichzeitig machen.
Was spricht eigentlich gegen einen Autowert und man hat halt Lücken bei Löschungen?
OK, wenn die Daten über ein Formular reinkommen, dann könnte man ins Formular-Ereignis Vor Aktualisierung eine Routine einbauen, die den momentan höchsten Zähler des entsprechenden Verwgf Wertes ermittelt, die mit 1 addiert und in das Formular ins entsprechende Feld einträgt.
Sollte auch als Ausdruck gehen, müsste wohl nicht unbedingt VBA sein.
Sollte auch als Ausdruck gehen, müsste wohl nicht unbedingt VBA sein.