Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: KonradR am Dezember 29, 2023, 08:44:23

Titel: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: KonradR am Dezember 29, 2023, 08:44:23
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
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: MzKlMu am Dezember 29, 2023, 09:23:47
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 ?
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: KonradR am Dezember 29, 2023, 10:45:38
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.
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: MzKlMu am Dezember 29, 2023, 11:14:53
Hallo,
ZitatEher eine Ansichtssache.
Wie bereits gesagt, sollte der Autowert auf der Benutzeroberfläche gar nicht zu sehen sein.
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: KonradR am Dezember 29, 2023, 11:17:41
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.
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: ebs17 am Dezember 29, 2023, 11:42:03
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.

Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: MzKlMu am Dezember 29, 2023, 12:34:29
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.
Titel: Re: autom. Weiterzählen vom Autowert nur erlauben, wenn neuer Datensatz angelegt
Beitrag von: ebs17 am Dezember 29, 2023, 13:30:02
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.