Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Sealine am Juli 22, 2011, 16:01:36

Titel: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: Sealine am Juli 22, 2011, 16:01:36
Mahlzeit zusammen.
Hab da (mal wieder) ne Idee aber die Umsetzung will nicht so ;)

Also ich habe eine Tabelle U1 in die aus einem Formular die Daten geschrieben werden.
Aus dieser Tabelle wird eine Abfrage gemacht die je nach Datum einen Wert ausgibt:
Status: Schalter(Datum()<[Vorlage160];"OK";Datum()=[Vorlage160];"CHECK";Datum()>[Vorlage160];"KRITISCH") (da gehört natürlich noch was anderes zu aber dieses resultat is wichtig ;) )

Diese Berechnung wiederrum wird in genau das Formular übertragen, mit dem ich den Usprungswert in die Tabelle schreibe. Funktioniert auch alles (Danke nochmal für die Idee mit der Abfrage und der Formel ;) )

Nun möchte ich ganz gerne das Feld im Formular je nach Ergebnis einfräben. Hieße also bei OK grüner Hintergrund weiße schrift, bei Check gelber hintergrund und weiße schrift, bei Kritisch roter hintergrund und weiße schrift.

Habe schon versucht das mit einer bedingten Formatierung zu realisieren aber das will nicht so wirklich klappen.

Hat wer einen Lösungsansatz für mich ?
Vielen Dank schonmal im voraus ;)
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: edgar.basler am Juli 22, 2011, 17:06:07
Unter der Voraussetzung, daß es ein Einzelformular ist, kann man dies recht einfach machen.

if me.feld="kritisch" then
me.feld.backcolor = rgb(255,0,0)
end if

Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: database am Juli 23, 2011, 09:44:31
Hallo,

ZitatUnter der Voraussetzung, daß es ein Einzelformular ist, kann man dies recht einfach machen.


If Me!Feld = "KRITISCH" Then
    Me!Feld.BackColor = RGB(255, 0, 0)      'Hintergrund rot
    Me!Feld.ForeColor = RGB(255, 255, 255)  'Schrift weiss
ElseIf Me!Feld = "CHECK" Then
    Me!Feld.BackColor = RGB(255, 255, 0)    'Hintergrund gelb
    Me!Feld.ForeColor = RGB(255, 255, 255)  'Schrift weiss
ElseIf Me!Feld = "OK" Then
    Me!Feld.BackColor = RGB(0, 153, 0)      'Hintegrund grün
    Me!Feld.ForeColor = RGB(255, 255, 255)  'Schrift weiss
Else
    Me!Feld.BackColor = RGB(255, 255, 255)  'Hintergrund weiss
    Me!Feld.ForeColor = RGB(0, 0, 0)        'Schrift schwarz
End If


...und am Besten im Ereignis 'Beim Anzeigen' (Form_Current) des Formulars, auf dem sich das Feld befindet bzw. ein geeignetes Ereignis des Feldes sebst
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: Sealine am Juli 25, 2011, 16:14:51
Klasse. Habe das Ganze mal getestet. Wenn ich das Feld nehme und den Code dort benutze als OnClick Ereigniss geht es. Finde bei den Ereignissen aber kein "Beim Anzeigen" .
Wie gesagt seid bitte gnädig mit mir ^^ Bin absoluter Neuling, versuche aber schnell zu lernen :-D
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: DF6GL am Juli 25, 2011, 16:37:28
Hallo,

vermutlich schaust Du in den Eigenschaften des Steuerelementes und nicht in den Eigenschaften des Formulares nach...
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: Sealine am Juli 25, 2011, 17:58:46
Und du hast da wahrscheinlich recht gehabt ;)

Mit welchen Ereignissen kann ich es denn nun richtig anstellen das:
Die richtige Farbe beim öffnen des Formulares geladen bzw gesetzt wird
und was noch viel wichtiger ist
Das wenn ich an dem Ursprungsdatum etwas ändere und dann ins nächste Feld "tabbe" und der Status sich in der berechnung ändert, ich das auch gleich im Formular sehe.

Hoffe Ihr versteht mein kauderwelsch ;)
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: DF6GL am Juli 25, 2011, 18:58:26
Hallo,

nun, die beiden besagten Ereignisse:

Form_Current ("Beim Anzeigen" des Formulares)

Afterupdate()  ( "Nach Aktualisierung" des Steuerelementes)
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: Sealine am Juli 25, 2011, 19:08:01
Muss ich bei afterupdate dann den Namen des steuerelements mit angeben ? Also das was aktualisiert wurde?
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: DF6GL am Juli 25, 2011, 21:39:40
Hallo,

mhmm,

weißt Du denn, wie man eine Ereignisprozedur anlegt?


"Das wenn ich an dem Ursprungsdatum etwas ändere und dann ins nächste Feld "tabbe" und der Status sich in der berechnung ändert"


Für das Textfeld, das das Ursprungsdatum anzeigt, triit das Ereignis "Nach Aktualisierung" auf, wenn man den Wert geändert hat und den Fokus  in ein anderes Feld bewegt.
Titel: Re: Feld einfärben je nach Wert der in der Abfrage herauskommt
Beitrag von: Sealine am Juli 26, 2011, 09:25:30
Japp weiß ich, zugegeben war ne blöde Frage... War wohl zu müde ;)

Aber ist ja auch logisch. AfterUpdate als Ereignisprozedur für das Datumsfeld.
Ist garnicht so einfach sich da rein zu fuchsen, aber das muss nun irgendwie mal klappen ;)