Hallo
Ich möchte in meinem Bericht "Wartungen rollend" Wartungsdaten, welche bereits in der Vergangenheit sind, mit einem Balken im Hintergrund der Textzeile hervorheben. Meine Idee war nun quasi mit einer Schlaufe die Datensätze zu durchlaufen. Dabei soll das Feld, in welchem das Wartungsdatum berechnet wird überprüft werden und sofern in der Vergangenheit liegend, den Balken (z.B. ein Rechteck, welches über der Zeile liegt) markieren/hervorheben.
Mein Code bisher:
Private Sub Report_Load()
Dim FarbeRot As Long, FarbeGrün As Long, AnzahlDs As Long
FarbeRot = RGB(242, 30, 30)
AnzahlDs = DCount("[NaechsteWartung]", "qryGeplanteWartungRollend")
For Zaehler = 1 To AnzahlDs
If Me.NaechsteWartung < Now Then
Me.Rechteck80.Visible = True
Me.Rechteck80.BackColor = FarbeRot
Else: Me.Rechteck80.Visible = False
Me.NextRecord = True
End If
Next
End Sub
Leider funktioniert die Sache nicht und mit einer einfachen bedingten Formatierung bin ich nicht zufrieden.
Hat jemand eine Idee oder einen anderen Lösungsansatz?
Gruss JOG
Hallo,
verwende die bedingte Formatierung und färbe den Hintergrund des Feldes z.B. rot. Dazu ist kein Buchstabe Code notwendig.
Als Bedingung für die bedingte Formatierung dann:
[NaechsteWartung] < Datum()
Das ist kein VBA, sondern die Bedingung für die bedingte Formatierung.
Und verwende nicht Jetzt() (Now) sondern Datum() (Date). Now bzw. Jetzt verwendet auch die Uhrzeit.
Hallo
Ja funktioniert soweit auch. Wollte halt eben eine deutlich auffallende Markierung oder Rahmen um die ganze Zeile visualisieren. Bei der Lösung kann ich das halt nur für die Breite des Feldes. Liege ich da mit meinem Ansatz ganz daneben?
Gruss JOG
Hallo,
Deine Ansatz ist völlig daneben, weil Du so kein Rechteck datensatzbezogen färben/anzeigen kannst.
Du durchläufst ja einfach mit der Schleife die Datensätze und setzt ein Rechteck auf sichtbar und für den Hintergrund die Farbe.
Das heist, nach dem öffnen des Berichts hat das Rechteck den Zustand der sich aus dem letzten Datensatz ergibt und fertig.
Versuche mal folgendes:
If Me.NaechsteWartung < Date Then
Me.Rechteck80.Visible = True
Me.Rechteck80.BackColor = RGB(242, 30, 30)
Else
Me.Rechteck80.Visible = False
End If
Im Ereignis "Beim Formatieren" des Berichtsbereichs.
Hallo
OK, vielen Dank für den anderen Ansatz, hat tip top funktioniert. In der Tat, die Formatierung des Rechtecks war dann jeweils bei allen Datensätze dieselbe.
Gruss JOG