Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt

Begonnen von KonradR, Dezember 29, 2023, 08:44:23

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich stehe wieder von einer Herausforderung in Access.
Wenn Acces per VBA im BeforeUpdate Ereignis des Formulars, in dem die Steuerelemente stehen, gehindert wird einen Datensatz anzulegen und ich dann das Formular über das "X", also die Schließen-Schaltfläche am oberen rechten Rand das Formular verlasse, dann wird der Datensatz zwar nicht angelegt, aber der Autowert zählt trotzdem weiter. Wie kann ich verhindern, dass bei einem solchen Ereignis der Autowert einfach weiterzählt?
Schon im Voraus vielen Dank.

Grüße: Konrad

MzKlMu

Hallo,
sobald in einem Formular in einem neuen Datensatz in einem Feld ein Zeichen eingetragen wird, ist der Autowert weg. Das kann nicht verhindert werden.
Das ist aber im Regelfall bedeutungslos, da der Autowert eine Zahl ohne besondere Funktion ist.
Der Autowert ist auch im Normalfall für den User nicht sichtbar.
Was stört Dich an der Lücke ?
Gruß Klaus

KonradR

Zitat von: MzKlMu am Dezember 29, 2023, 09:23:47sobald in einem Formular in einem neuen Datensatz in einem Feld ein Zeichen eingetragen wird, ist der Autowert weg. Das kann nicht verhindert werden.
Danke. Ich dachte, dass wäre möglich.

Zitat von: MzKlMu am Dezember 29, 2023, 09:23:47Was stört Dich an der Lücke ?
Mein Verständnis von Ordnung sagt mir, dass dann schon was von vornherein nicht passt und damit fehlerhaft ist. Eher eine Ansichtssache.

MzKlMu

Hallo,
ZitatEher eine Ansichtssache.
Wie bereits gesagt, sollte der Autowert auf der Benutzeroberfläche gar nicht zu sehen sein.
Gruß Klaus

KonradR

Zitat von: MzKlMu am Dezember 29, 2023, 11:14:53Wie bereits gesagt, sollte der Autowert auf der Benutzeroberfläche gar nicht zu sehen sein.
Danke. Dann stellt sich die Herausforderung auch gar nicht mehr und ich habe mir ein Problem gemacht, was es gar nicht gibt.

ebs17

Das Gefühl für Ordnung könnte man auch in die Richtung entwickeln, dasss man nur mit der Eingabe zu neuen Datensätzen beginnt, wenn man diese wirklich erzeugen will und sein Zeug vollständig und fehlerfrei beisammen hat, dass also
- Pflichtangaben vollständig verfügbar zur Eingabe sind,
- keine Fehler (Indexfehler, Datenkonvertierungsfehler, Verstöße gegen aufgestellte Gültigkeitsregeln) erzeugt werden, dabei auch die Nichterzeugung von ungewünschten Duplikaten.

Mit freundlichem Glück Auf!

Eberhard

MzKlMu

Hallo,
Zitatdasss man nur mit der Eingabe zu neuen Datensätzen beginnt, wenn man diese wirklich erzeugen will und sein Zeug vollständig und fehlerfrei beisammen hat,
Ich glaube nicht, dass das immer möglich ist. Es gibt ganz sicher auch Fälle, wo man während der Eingabe feststellt, dass man doch nicht alles beisammen hat, besonders dann, wenn man auch auf Zuarbeit von anderen Personen angewiesen ist. Es ist ja niemand vollständig fehlerfrei.
Gruß Klaus

ebs17

ZitatEs gibt ganz sicher auch Fälle ...
Ja, was ist die Ausnahme und was ist die Regel?


Für die Drauflostipper könnte man das gebundene Formular durch ungebundene Steuerelemente zur Dateneingabe ersetzen. Dann müsste eine explizite Aktion (Recordset-AddNew, Anfügeabfrage) das Speichern in die Tabelle veranlassen, und erst dann würde der Autowert belegt.

Als weitere Variante könnte man eine Neueingabe sperren, um sie explizit zu entsperren oder in ein separates Eingabeformular zu verlegen. In beiden Fällen sollte es dem User sehr bewusst sein, dass es zur Eingabe geht.

Übrigens: Wenn man per Standardimport oder Anfügeabfrage Datensätze auf eine Tabelle losfeuert, werden Indexfehler (eindeutiger Index zur Duplikatabwehr) auch Autowerte verbrauchen. Vermeidbar wäre das, wenn man nur neue Datensätze anfügt. Der "Verbrauch" von Autowerten ist also alles andere als ein unabwendbares Ereignis. Eigenes Tun ist da maßgeblich beteiligt.
Mit freundlichem Glück Auf!

Eberhard