Bedingte Formatierung per VBA

13/08/2008 - 14:13 von Raimo Becker | Report spam
Hallo NG,

ich möchte zu Laufzeit eine bedingte Formatierung àndern.
Wenn ich mit
sub formatiernug_àndern()
...
Forms("frmPrioritàt").Controls("Verzögern").FormatConditions.Delete
' löscht die erste bed.Foratierung

With Forms("frmPrioritàt").Controls("Verzögern").FormatConditions _
.Add(acFieldValue, acLessThan, Format([txtPrioritàt], "dd-mm-yyyy"))
.BackColor = RGB(255, 255, 255)
.FontBold = True
.ForeColor = RGB(255, 0, 0)
End With
'die neue wird eingetragen

jetzt würde ich gerne die Anzeige aktualisieren
aber weder:
Forms("frmPrioritàt").Refresh
oder
Forms("frmPrioritàt").Repaint
funktionieren, bzw. haben einen Effekt

Wenn ich aber im Formular auf das Feld"Verzögern" klicke, und dann auf
bedingte Formatierung, ist das Kriterium eingetragen. Ich muss aber immer
erst auf OK klicken, un die bedForm. zu "aktivieren".
Kann ich das automatisieren?

Besten Gruß Raimo
 

Lesen sie die antworten

#1 Henry Habermacher
13/08/2008 - 14:23 | Warnen spam
Hallo Raimo

"Raimo Becker" wrote in message
news:
With Forms("frmPrioritàt").Controls("Verzögern").FormatConditions _
.Add(acFieldValue, acLessThan, Format([txtPrioritàt], "dd-mm-yyyy"))



Ein solcher Vergleich wird wohl in der Regel nicht das gewünschte Ergebnis
bringen. DAs würde in einen Vergleich der Art:

Me!Verzögern < Format(Me!txtPrioritàt, "dd-mm-yyyy")

enden. Und da wird dann der 01.01.2008 kleiner sein, dals der 01.01.2008,
was wohl kaum in Deinem Sinn sein wird, oder?
Falls Verzögern ein Datumsfeld ist, dann solltest Du:
Me!Verzögern < CDate(Me!txtPrioritàt)

verwenden, rsp:
.Add(acFieldValue, acLessThan, CDate([txtPrioritàt]))

jetzt würde ich gerne die Anzeige aktualisieren
aber weder:
Forms("frmPrioritàt").Refresh
oder
Forms("frmPrioritàt").Repaint
funktionieren, bzw. haben einen Effekt



Vermutlich haben die schon einen Effekt, aber weil die Werte falsch
verglichen werden, ist die Bedingung falsch und daher wird dieses Format
nicht angewendet. Ich vermute, dass Du da gar nichts machen musst.

Wenn ich aber im Formular auf das Feld"Verzögern" klicke, und dann auf
bedingte Formatierung, ist das Kriterium eingetragen. Ich muss aber immer
erst auf OK klicken, un die bedForm. zu "aktivieren".



Ich vermute, da wird dann der Ausdruck umgewandelt. Lies' diesen doch mal im
Direktfenster aus, nachdem Du diesen über die Oberflàche gesetzt hast.
Ansonsten kannst Du auch mal Me!Verzögerung.Requery versuchen.

Gruss
Henry

Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen