2.9k Aufrufe
Gefragt in Datenbanken von
Hallo ich möchte in einem Formular vor dem Erledigen prüfen ob bestimmte Felder richtig erfasst wurden.
2 Beispiele:
Erfasste Menge >0
Name (einer Person) muss vorhanden sein

Ich möchte wirklich erst zum Schluß eine Plausi-Prüfung machen und währende der Eingabe.

Mit If .. then
elseif usw. ist mir dies zu umständlich, außerdem kann ich nicht verschiedene Fehler zu einem String zusammenfassen (oder umständlich als Lindwurm nach If...)

Gibt es eine elegante Lösung anhand der 2 Beispiele? Bei mir sind es ca. 5 bis 6 welche zu prüfen sind
Evtl. mit Select case Anweisung?
Aber da kam ich als Anfänger auch nicht weit.
Danke und Grüße
Dieter

2 Antworten

0 Punkte
Beantwortet von marie Experte (2k Punkte)
ob du jetzt mit if then else oder select case arbeitest ist wirklich schnurzegal, was soll mit einer if schleife umständlicher sein? Es kommt doch darauf an was Du willst. ich verstehe einfach deine Frage nicht:

Ich möchte wirklich erst zum Schluß eine Plausi-Prüfung machen und währende der Eingabe.


das widerspricht sich doch, was Du da schreibst.
Und für Dein beispiel kann man doch keine case anweisung gebrauchen, da schreibt man doch

if Erfasste Menge nicht >0 oder Name nicht vorhanden oder ... oder... oder... oder....
then ........

Aber um zu sagen was wie elegant oder nicht ist muss man doch genauer wissen was Du willst. Was soll in welchen Fällen geschehen? Wird das unterschieden in 7 Fälle oder geschieht immer dasselbe, nämlich eine gemeinsame fehlermeldung?

gruß marie
0 Punkte
Beantwortet von
Hallo Marie, genau den letzten Satz trifft es. Ich möchte eine gemeinsame Fehlermeldung ausgeben.

Mir kam aber selbst eine Idee und ich denke dies genügt mir:
Die Meldungsstruktur gestalte ich natürlich noch besser

Es sein denn, es gibt noch elegantere Lösungen.

Private Sub Befehl3_Click()
Dim strMeldung As String, Beding1 As String, Beding2 As String, Beding3 As String

If Me.Menge < 1 Then
Beding1 = "Bitte eine Prüfmenge erfassen"
End If
If Me.A_Name = "A" Then
Beding2 = "Bitte Namen erfassen"
End If
If Me.P_Name = "B" Then
Beding3 = "Bitte den Prüfer erfassen"

End If
strMeldung = Beding1 & vbCrLf _
& Beding2 & vbCrLf _
& Beding3

MsgBox (strMeldung)

End Sub

Gruß Dieter
...