PDA

Vollständige Version anzeigen : AutoWert wird erhöht auch wenn Formular abgebrochen wird


Andre Gastreich
23.06.2001, 19:13
Ich habe in einem Formular einen AutoWert. Wenn ich nun dieses Formular öffne und den ersten Buchstaben eingebe, wird der AutoWert um eins erhöht. Wenn ich das Formular abbreche, weil ich den Datensatz nun doch nicht eingeben will, bleibt dieser AutoWert aber nun vergeben und beim nächsten Datensatz ist er um eins höher (es entsteht also eine Lücke).

Kann man das irgendwie verhindern, dass der AutoWert erhöht wird, auch wenn ich das Eingabeformular abbreche ?

klemens
23.06.2001, 22:11
hi,

ich denke das problem kannst du lösen, indem du das autowert-feld selbst updatest.
also zb "bei neuer record" den autowert ( ich nenns hier mal ID ) auf "max(id) + 1" setzten.

ansonsten kriegt man gezogene auto-id's nur wieder mit datenbank-komprimieren weg...

mfg
.klemens

Bernd Koch
23.06.2001, 22:29
Was ist daran schlimm??

Ein Autowert-Feld ist - auch wenn es immer wieder gern dazu "missbraucht" wird - k e i n Zählerfeld (das deshalb möglichst lückenlos sein sollte oder wo man versucht, Lücken wieder zu füllen)!!

Spätestens, wenn du den ersten Datensatz löscht, hast du auch eine Lücke in deiner Zahlenreihe.

Das Autowert-Feld dient ausschließlich dazu, die interne Funktionalität einer Datenbank zu unterstützen (Eindeutigkeit der Datensätze, Verbindung zwischen Tabellen usw.); es müsste normalerweise in einem Formular überhaupt nicht angezeigt werden.

Wenn du ein automatisch hochzählendes Zählerfeld benötigst (das dann ganz ähnlich wie ein Autowert-Feld funktioniert aber eine ganz andere Funktion in der DB hat), so schau doch mal u.a. hier nach:

Datensatz Nummerieren (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=41155)

Bernd

Nockenwelle
24.06.2001, 14:34
Hi,

wie schon Bernd sagte, ist der Wert(also der Zahlenwert) des Autowertes für die Funktion deiner DB letztendlich egal.
Um fortlaufende Nummern erzeugen zu können, die man andersweitig benutzen will, must du wohl oder übel Funktionen hinterlegen. Schau dir mal das Beispiel 'kleinste freie Zahl' bei Accessparadise an. 1:1 konnte ich die zwar auch noch nie verwenden, aber mit etwas Phantasie, war sie mir dennoch sehr nützlich(beispielsweise habe ich der Funktion ein Recordset übergeben, die Sie dann auswerten konnte).

Cu