August 05, 2020, 20:52:01

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


Fehlermeldung modifizieren, wenn "Eingabe erforderlich" auf "Ja" ist?

Begonnen von mradlmaier, Mai 10, 2010, 16:30:24

⏪ vorheriges - nächstes ⏩

mradlmaier

Hallo,

Wenn ich in einer Tabelle bei einem Feld"Eingabe erforderlich" auf "Ja" setze, wird bei fehlender Eingabe ein Standard-Fehlermeldung der Form "Sie müssen einen Wert in das 'tabellenname.feldname' Feld eingeben". Wie kann ich 'tabellenname.feldname' in etwas benutzerfreundliches ändern? Ich verwende für Tabellen und Felder eine Notation, die für den Endbenutzer eher irritierend sein dürfte...

Danke,
Michael

Wodka43

Hi,

nachdem ich 5 min erfolglos gegoogelt hab, würd ich dir raten das ganze per vba zu lösen.

Also "Eingabe erforderlich" wieder auf "nein" setzen und dann in den betroffenen Ereignissen deines Formulars (beim speichern, beim schließen ,etc) das betroffene Feld auf NULL und "" prüfen.
Dann kannst du dir deine eigenen Fehlermeldungen ausdenken ;-)

mfg
Leo
"Nimm das Leben nicht zu ernst, du kommst da eh nicht lebend raus"
;)

database

Hallo,

ich nehme an, dass den Usern ein Formular zur Dateneingabe zur Verfügung steht oder lässt du die User direkt auf die Tabelle los  ???

Du könntest auf Tabellenebene statt der Eingabe erforderlich Ja - Prüfung auch eine Gültigkeitsprüfung verwenden, die du mit einem individuellen Text in der Gültigkeitsmeldung (welch irres Wort) behandeln kannst.
Wenn du (wie ich immer noch hoffe) mit Formularen arbeitest, dann nimm die Eingabeprüfung auf Tabellenebene gleich wieder raus. Wie du schon leidlich festgestellt hast werden hierbei Standardtexte von Access verwendet.
Besser ist es eine Eingabevalidierung auf Formularebene zu realisieren.
Ob du dieses nun in einem Rutsch für das gesamte Formular machst oder für jedes Eingabefeld einzeln ist dir überlassen.
Jedenfalls kannst du da auch benutzerfreundliche Meldungstexte ins Gelände schicken.

Für einzelne Felder solltest du das Ereignis 'Vor Aktualisierung' also BeforeUpdate verwenden, wenn du eine Prüfung aller Felder in einem gebundenen Formular vornehmen willst, bietet sich das Ereignis BeforeUpdate der Form als Heimat für deine Fehlerbehandlung an.
Zitatdas betroffene Feld auf NULL und "" prüfen
... wird möglicherweise zu wenig sein, da du auch prüfen solltest ob in ein Zahlenfeld Text eingegeben wurde, ein Datumdfeld eine Zahl oder Text enthält usw.

Das Thema Eingabeprüfung / Eingabevalidiereung / Fehlerbehandlung ist ein sehr weit gefächertes  -  google mal nach 'Eingabeprüfung VBA Access'  und dann noch nach 'Eingabevalidierung VBA Access'


Peter


database

Hi,
ja genau, das habe ich nach dem Zitat noch mit anführen wollen - wieso habe ich das dann nicht? *grrrr*  :-\

mradlmaier

Ist ein Formular, basierend auf einer Abfrage (damit die Tabelle sortiert ist)
Ich weiss, dass man das auch mit vba und erreignissen machen kann...
ökonomischer wäre es aber, die vorhandene ms-access gui infrastruktur zu verwenden...

Wenn ich mit ms-access allzuviel gui code schreiben muss, dann weiss ich nicht warum ich überhaupt ms-access verwende...dann nehme ich lieber mysql und mach ein web-basiertes front-end.
Ich persönlich finde, dass ms-access dann brilliert, wenn man ohne code ein gui haben will...lol

Im übrigen gibts bei events und vba den einen oder anderen pitfall...ist nicht immer so intuitiv wie ich erwarte...

Trotzdem danke!

Interessanter ist da schon die Gültigkeits-Schiene...hat jemand einen Vorschlag für Felder, die
1. ausgefüllt werden müssen und
2. nur mit Zahlen größer oder gleich 0 gefüllt werden dürfen.
ich machs mit:
Ist Nicht Null Und >= 0
Das funktioniert soweit, nur dass bei Eingabe von Text nicht die Gültigkeitsregel zum Zuge kommt, sondern ms-access Standard-Fehlermeldung für falschen Datentyp. Das ist zwar ok, aber unschön...

Zitat von: database am Mai 10, 2010, 18:02:48
Hallo,

ich nehme an, dass den Usern ein Formular zur Dateneingabe zur Verfügung steht oder lässt du die User direkt auf die Tabelle los  ???

Du könntest auf Tabellenebene statt der Eingabe erforderlich Ja - Prüfung auch eine Gültigkeitsprüfung verwenden, die du mit einem individuellen Text in der Gültigkeitsmeldung (welch irres Wort) behandeln kannst.
Wenn du (wie ich immer noch hoffe) mit Formularen arbeitest, dann nimm die Eingabeprüfung auf Tabellenebene gleich wieder raus. Wie du schon leidlich festgestellt hast werden hierbei Standardtexte von Access verwendet.
Besser ist es eine Eingabevalidierung auf Formularebene zu realisieren.
Ob du dieses nun in einem Rutsch für das gesamte Formular machst oder für jedes Eingabefeld einzeln ist dir überlassen.
Jedenfalls kannst du da auch benutzerfreundliche Meldungstexte ins Gelände schicken.

Für einzelne Felder solltest du das Ereignis 'Vor Aktualisierung' also BeforeUpdate verwenden, wenn du eine Prüfung aller Felder in einem gebundenen Formular vornehmen willst, bietet sich das Ereignis BeforeUpdate der Form als Heimat für deine Fehlerbehandlung an.
Zitatdas betroffene Feld auf NULL und "" prüfen
... wird möglicherweise zu wenig sein, da du auch prüfen solltest ob in ein Zahlenfeld Text eingegeben wurde, ein Datumdfeld eine Zahl oder Text enthält usw.

Das Thema Eingabeprüfung / Eingabevalidiereung / Fehlerbehandlung ist ein sehr weit gefächertes  -  google mal nach 'Eingabeprüfung VBA Access'  und dann noch nach 'Eingabevalidierung VBA Access'


Peter

mradlmaier

Eine Frage noch bezüglich Gültigkeitsregeln:

Wo würdet Ihr die Gültigkeitsregeln platzieren und warum? In der Tabelle oder im Formular?