online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Mondoban vom 05.06.2019, 12:28 Options

Access setzt Schriftfarbe automatisch auf rot

Werte Fachwissende,

die folgende Funktion dient der Einfärbung von innerhalb der Prozedur errechneten Prozentwerten je nachdem ob sie positve oder negativ sind.

If Res < 0 Then
Me.DPV_Comp_2004.ForeColor = RGB(250, 0, 0)
Me.DPV_Comp_2004 = Res & "%"
Else
If Res = "0" Then
Me.DPV_Comp_2004.ForeColor = RGB(0, 0, 170)
Me.DPV_Comp_2004 = Res & "%"
Else
Me.DPV_Comp_2004.ForeColor = RGB(0, 170, 0)
Me.DPV_Comp_2004 = "+" & Res & "%"
End If
End If
End If

Das Problem ist nun sobald ich der Prozentzahl durch ein künstliches "+" & den Positivcharakter der Zahl nocheinmal unterstützen möchte, ändert Access die Textfarbe automatisch in rot um. Lässt man den Präfix "+" & weg oder ersetzt ihn durch einen Zahlen- oder Buchstabenkette funktioniert die Funktion einwandfrei. Die merkwürdige Roteinfärbung tritt nur bei Zeichen wie +,-,*,# usw auf ...

Die Prozentzahl soll sofern sie positiv ist grün und als +39% erscheinen. Sollte der Prozentwert negativ sein wird er rot gefärbt und bereits automatisch mit negativem Vorzeichen als -39% ausgegeben. Der Wert wird blau gefärbt und als 0% dargestellt.

Fazit: Die Große Frage ist warum wird der positive Wert wenn ihm ein Zeichen vorangestellt wird plötzlich rot und nicht grün. Ich hoffe einer von euch kann mir hier weiterhelfen.

Liebe Grüße,
Alex


Antwort schreiben

Antwort 1 von Proggi vom 05.06.2019, 12:40 Options

du solltest nicht mit > oder < einen String vergleichen, der Effekt kann wie beschrieben nach hinten los gehen.

im normalfall würdest du das mit dem "+" weglassen da das überbetont.

vergleiche einen String und benutze Select Case - deine If-abfrage ist unübersichtlich.

Select Case Left(Res, 1)
Case "-"
  Me.DPV_Comp_2004.ForeColor = RGB(250, 0, 0)
  Me.DPV_Comp_2004 = Res & "%"
Case "0"
  Me.DPV_Comp_2004.ForeColor = RGB(0, 0, 170)
  Me.DPV_Comp_2004 = Res & "%"
Case Else
  Me.DPV_Comp_2004.ForeColor = RGB(0, 170, 0)
  Me.DPV_Comp_2004 = "+" & Res & "%"
End Select

Antwort 2 von Mondoban vom 05.06.2019, 13:33 Options

Vielen Dank Proggi für die rasche Antwort und die Verbesserung meiner If-Abfrage ...

Jedoch gibt mir Access im Case Else immernoch den +39% - Wert in Rot und nicht in grün aus. Sobald ich das Pluszeichen mit "+" & davor setzt färbt sich der Werte im Textfeld automatisch rot ungeachtet der erzwungenen Textfarbe in der Funktion.

Also dass mach irgendwie keinen Sinn finde ich ... Zunächst werde ich die positiven einfach nur grün anzeigen lassen ohne Pluszeichen. Es würde mich aber trotzdem interessieren warum Access jeden Wert rot färbt wenn man künstlich eine Zeichen davor setzt.

Bitte klärt dieses Mysterium auf.

Thx,
Alex

Antwort 3 von Proggi vom 05.06.2019, 13:39 Options

Mal frage - ist das ein Endlosformular?

Antwort 4 von Teddy7 vom 05.06.2019, 14:27 Options

Hat proggi doch gesagt.
Durch die Zusammenstellung "+" & Res & "%"
ist das Feld keine Zahl mehr sondern ein Text - und der wird halt bei < Abfrage hexadecimal aufgedröselt. D.h. wahrscheinlich ist der hexadecimale Wert von + kleiner als der von 0.
Lösung: mach 2 Felder. Die Zahl kannst Du unsichtbar stellen und ein Textfeld füllst und formatierst Du abhängig vom Zahlenfeld.

Gruß
Teddy

Antwort 5 von erik vom 05.06.2019, 14:39 Options

Hallo Alex,

statt des VBA-Codes würde ich dir empfehlen, ein benutzerdefiniertes Format in die Format-Eigenschaft des betroffenen Formularfeldes einzufügen:

+0%[Grün];-0%[Rot];0%[Blau];[Schwarz]


Nachdem was ich gelesen habe, müsste dieses Format in jeder Hinsicht genau das machen, was du brauchst.

Wie das im Detail funktioniert, verrät die Online-Hilfe. Drücke nach Klick in die Format-Eigenschaft die F1-Taste und scrolle runter zu "Benutzerdefinierte Formate"

Viele Grüße
erik

Ähnliche Themen

Schriftfarbe automatisch?
Kubi34  05.04.2007 - 96 Hits - 1 Antwort

Access schließt sich automatisch
Reozeel  22.06.2007 - 189 Hits - 6 Antworten

Farbänderung Schrift bei Datumswechsel
stoney  05.02.2008 - 55 Hits - 5 Antworten

Excel - Schriftfarbe rot wenn...
Maria19  25.03.2008 - 45 Hits - 3 Antworten

Wert in Zelle automatisch Rot färben
Noldi  04.04.2008 - 28 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026