Neuigkeiten:

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

Mobiles Hauptmenü

Feld muss ausgefüllt werden erzwingen

Begonnen von datekk, Januar 15, 2016, 20:38:09

⏪ vorheriges - nächstes ⏩

datekk

Hi. Ich habe in einem Formular Felder, welche unbedingt ausgefüllt werden müssen. Bei den betreffenden Feldern handelt es sich um Textfelder. In die Eigenschaften habe ich die Gültigkeitsregel "Ist nicht Null" eingegeben und bei Gültigkeitsmeldung habe ich einen freundlichen Text geschrieben.

Leider zeigen diese Einstellungen keinerlei Wirkung. Ich kann die Felder ganz einfach via Tabulator überspringen oder das Formular schließen.. Es ist so, als ob ich gar keine Gültigkeits Eigenschaften erfasst habe.

Woran liegt das oder mache ich was grundlegendes falsch? Ich finde auch nicht die Eigenschaft "Eingabe erforderlich"...

LG und schon mal Danke.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

HB9876

Hi,
je nach Aufbau, evtl. einfach als Pflichtfeld in der zugrunde liegenden Tabelle?!

Gruss
Jens
Mit jeder Antwort komme ich weiter und lerne.<br /><br />Danke!!!

ebs17

Regeln, die unbedingt einzuhalten sind, würde man primär in der Tabellendefiniton (Tabellenentwurf) hinterlegen, denn da gelten sie immer, also nicht nur bei Formulareingaben, sondern auf bei Aktionsabfragen oder Recordsetaktionen auf die Tabelle wie auch beim händischen Betrieb an der Tabelle.
Mit freundlichem Glück Auf!

Eberhard

datekk

Das Trifft leider nicht zu. Ich verwalte in der gleichen Tabelle verschiedene Typen von Kontakten. Nur bei einem müssen die entsprechenden Felder ausgefüllt werden, beim anderen nicht. Ich nutze für die unterschiedlichen Typen auch unterschiedliche Formulare zur Erfassung der Daten.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Also bleibt ggf. nur ein Workaround via VBA mit dem Ereignis "beim verlassen"... oder?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
ZitatNur bei einem müssen die entsprechenden Felder ausgefüllt werden, beim anderen nicht.
das riecht nach einem verbesserungsbedürftigen Datenmodell.
Erkläre mal, warum das so ist.
Gruß Klaus

datekk

Nein, nicht gleich so hoch greifen ;) Stell dir einfach eine Tabelle mit Geschäftskontakten vor. Diese werden unterteilt in Kunden und Leads (also Soll-Kunden/Interessenten). Eine Spalte in der Tabellen unterscheidet den Typ. Und bei einem Typ müssen halt zwei Felder mehr ausgefüllt werden als beim anderen....
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MaggieMay

Hallo,

mAn besteht die einzig zuverlässige Kontrollmöglichkeit im Formular-Ereignis "Vor (bzw. Nach-) Aktualisierung".
Der Einsatz von Gültigkeitsregeln und die Nutzung sonstiger (Steuerelement-) Ereignisse zwecks Kontrolle der Dateneingabe bereiten sowohl dem Anwender als auch dem Entwickler nur unnötigen Stress.
Freundliche Grüße
MaggieMay

datekk

Ja, das sehe ich mittlerweile auch so... Ok besten Dank Euch :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

julle


Private Sub txtAdresse_BeforeUpdate(Cancel As Integer)
If IsNull(Me!txtAdresse) Then

    MsgBox "Eingabe erforderlich", vbInformation, "Bitte Feld ausfüllen."
    Cancel = True

End If
End Sub


Ich hab das so gemacht, aber irgendwo ist da ein Fehler drin, sieht den jemand? Eben gings noch und jetzt garnicht mehr...

MaggieMay

Hi,
ZitatEben gings noch
wie stellt sich dieses "Nicht Gehen" dar? Ist der Inhalt des Textfeldes evtl. nicht NULL sondern einfach nur leer ("")?
Freundliche Grüße
MaggieMay

julle

Zitat von: MaggieMay am Januar 18, 2016, 11:29:15
Hi,
ZitatEben gings noch
wie stellt sich dieses "Nicht Gehen" dar? Ist der Inhalt des Textfeldes evtl. nicht NULL sondern einfach nur leer ("")?
Die Meldung kommt nicht mehr wenn das Feld leer ist...
hab auch schon If (Me!txtAdresse) = "" Then .... versucht, ohne Erfolg

Weiß nicht wieso das schonmal ging und jetzt nichtmehr.   ???

DF6GL

Hallo,

versuch mal:

If Len(nz(Me!txtAdresse,"")) = 0 Then
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

julle

Zitat von: DF6GL am Januar 18, 2016, 12:03:00
Hallo,

versuch mal:

If Len(nz(Me!txtAdresse,"")) = 0 Then

Da bekomm ich die Meldung sowohl für den Fall, dass das Feld leer ist, als auch wenn etwas drin steht!!

MaggieMay

Die Ereignisprozedur kommt nur bei Änderung des Textfeldes zum Einsatz, wenn nichts drinsteht und nichts eingetragen wird, passiert auch nichts.
Meinst du das vielleicht?

BTW:
ZitatDa bekomm ich die Meldung sowohl für den Fall, dass das Feld leer ist, als auch wenn etwas drin steht!!
Das glaube ich nicht.  ???
Freundliche Grüße
MaggieMay