Ich möchte über VBA einen Filter erweitern, der mir alle Datensätze anzeigt, deren Feld "VorlageDatum" nicht in der Zukunft liegt. Also quasi als Wiedervorlage.
Markiert werden diese bereits farbig und mit Rahmen über diese Kernfunktion:
strHeute = Format(Now, "\#yyyy\-mm\-dd\#")
strDatum = Format(VorlageDatum, "\#yyyy\-mm\-dd\#")
If strDatum <= strHeute Then
Me.txtVorlage.BackColor = RGB(255, 194, 14)
Me.VorlageDatum.BackColor = RGB(255, 194, 14)
Else
Me.txtVorlage.BackColor = RGB(255, 255, 255)
Me.VorlageDatum.BackColor = RGB(255, 255, 255)
Me.rechteckMarker.Visible = True
End If
Nun suche in einen Filter, um über Criteria diese zu definieren. Stark vereinfacht lautet dieser derzeit:
Criteria = BuildCriteria("Ehemalig = False")
Me.Filter = Criteria
Mein Versuch ging in diese Richtung:
strHeute = Format(Now, "\#yyyy\-mm\-dd\#")
strDatum = Format(VorlageDatum, "\#yyyy\-mm\-dd\#")
Criteria = BuildCriteria("Ehemalig = False" & " AND " & "strDatum <= strHeute")
Me.Filter = Criteria
Aber irgendwie will das nicht, vermutlich lässt sich mit dieser Bedingung gar kein Filter definieren, oder?
Vielen Dank für alle Hinweise !!
BuildCriteria (https://msdn.microsoft.com/de-de/vba/access-vba/articles/application-buildcriteria-method-access) erwartet 3 Argumente in vorgegebener Reihenfolge, muss aber für konstante Ausdrücke, wie sie hier vorliegen, erst gar nicht eingesetzt werden.
Const WiedervorlageColor As Long = &HEC2FF 'RGB(255,194,14)
If Me.VorlageDatum <= VBA.Date() Then
Me.txtVorlage.BackColor = WiedervorlageColor
Me.VorlageDatum.BackColor = WiedervorlageColor
Else
Me.txtVorlage.BackColor = vbWhite
Me.VorlageDatum.BackColor = vbWhite
'... und wo wird das Rechteck unsichtbar geschaltet?
Me.rechteckMarker.Visible = True
End If
'....
Me.Filter = "Ehemalig = False AND VorlageDatum <= Date()"
Me.FilterOn = True
Klasse, hat geklappt, auch wenn ich auf Criteria = BuildCriteria nicht verzichten kann (Optionsgruppe).