Hallo,
ich habe ein Formular mit 3 Kombifeldern (cbo_Tag, cbo_Monat, cbo_Jahr).
Ich will, dass in mindestens einem der 3 ein Wert ausgewählt werden muss, dass aber auch immer 2 leer bleiben können. Diese Werte werden dann als Abfragekriterien verwendet und ein best. Bericht wird geöffnet.
Wie macht man das am besten?
Habs mal so versucht, was aber nicht klappt. Wo liegt der Fehler?
If Len(cbo_Tag) = 0 Or IsNull(cbo_Tag) = True Then
DoCmd.OpenReport ReportName, acViewPreview, , "[Monat_P]=" & Me!cbo_Monat & "And[Jahr_P]=" & Me!cbo_Jahr
ElseIf ((Len(cbo_Tag) = 0 Or IsNull(cbo_Tag)) And (Len(cbo_Monat) = 0 Or IsNull(cbo_Monat))) = True Then
DoCmd.OpenReport ReportName, acViewPreview, , "[Jahr_P]=" & Me!cbo_Jahr
Else
DoCmd.OpenReport ReportName, acViewPreview, , "[Tag_P]=" & Me!cbo_Tag & "And[Monat_P]=" & Me!cbo_Monat & "And[Jahr_P]=" & Me!cbo_Jahr
End If
Servus Krümelchen,
du könntest es mit einer Prüffunktion in der Art versuchen:
Function Check_Pflichtfelder() As Integer
Check_Pflichtfelder = 0
If Not IsNull(Me.cbo_Tag) = True Then Check_Pflichtfelder = Check_Pflichtfelder + 1
If Not IsNull(Me.cbo_Monat) = True Then Check_Pflichtfelder = Check_Pflichtfelder + 1
If Not IsNull(Me.cbo_Jahr) = True Then Check_Pflichtfelder = Check_Pflichtfelder + 1
End Function
Wie auch immer Du dann die Prüfung, ob eines der Pflichtfelder einen Wert hat, dann vornimmst (z.B. mittels Button o.ä.) müsste in dieser Prozedur dann mind. ein Schnipsel wie folgt stehen:
If Check_Pflichtfelder = 0 then Msgbox "Bitte Wert in Pflichtfeld auswählen!!!"
Zu Deinem Code würde ich Dir mal das Debuggen empfehlen; augenscheinlich hast Du für Deine Kombifelder teilweise den Formularbezug vergessen; Bsp.:
If Len(Me.cbo_Tag) = 0 Or IsNull(Me.cbo_Tag) = True Then ...
Hoffe, es hilft...
P.
Sorry, das kapiere ich nicht. Kenne micht in Access (VBA) nicht so gut aus.
Wo schreibe ich diese Funktion hin???
Servus, Krümel
ZitatSorry, das kapiere ich nicht. Kenne micht in Access (VBA) nicht so gut aus.
...kann ich bei dem von Dir eingangs genannten Code zwar nicht ganz nachvollziehen (es sei denn, da war doch ein Anderer am Werk), aber sei's drum...
ZitatWo schreibe ich diese Funktion hin???
So Du die von mir genannte Funktion meinst: wahlweise in das entsprechende Formular oder in ein separates Modul. Wie gesagt, wie Du die Pflichtfeldprüfung dann auslöst, bleibt Dir überlassen (darüber hast Du nämlich bisher nicht gesprochen)...
Gruß
P.