Access: Bedingte Formatierung auf andere Zelle bezogen

  • #1
I

iggboert

Aktives Mitglied
Themenersteller
Dabei seit
30.01.2006
Beiträge
39
Reaktionspunkte
0
Hi Leutz, sitzt mal wieder an meinem kleinen Access-Projekt. Hab nun das Problem, dass ich die bedingte Formatierung anwenden will. Allerdings nicht auf die Zelle bezogen, in der der Wert steht.

Mein Wunsch: Wenn im Formular das
Feld GT2 den Wert - hat, soll das
Feld GT2.1 keinen Wert haben, aber die Farbe zu grau wechseln.
Evtl. kann das Feld GT2.1 auch deaktiviert werden.
Würd ich über beide Lösungen freuen.

Habs bisher leider nicht selber zusammengebracht.
Thx für eure Hilfe.

Gruss
Igge
 
  • #2
Zellen dürften in ACCESS Steuerelemente oder Berichtsfelder sein. Diese kann man per VBA in großer Bandbreite verändern. Allerdings kommt es darauf an, welche Ereingisse man verwendet und das man auch alle Ereignisse abdeckt, die eine Veränderung hervorrufen können.

Da ich nicht weis ob es sich um ein Formular (Bildschirm-Darstellung) oder einen Bericht handelt kann ich auch nicht mehr sagen. Doch unter dem Link und der dortigen FAQ gibt es eine Reihe von Beispielen, also dort mal nachschauen.

Gruß
Kurt Körner
 
  • #3
Also es handelt sich um ganz normale Felder in einem Formular, deren Werte aus einer Tabelle entnommen werden.
bed_format.jpg


Wenn des Feld oben (GT2), den Wert - hat, wird es grau. Dann sollte des Feld untendrunter(GT2_Type) auch grau werden (Vielleicht sogar nicht aktiviert).

Hab sowas nicht auf gefunden.

Also als Grundprogramm hab ich mir halt so was gedacht:

If Me.GT2=- Then Me.GT2_Type!Color=1234

Hab bloss leider keine Ahnung wie die Farben heissen, bzw. wie die richtige Abfolge beim VBA-Programmiern is. Hab jetzt einfach mal mit Laienwissen was zammgebastelt.
Wüsste z.B. auch net, wo ich des dann hinschreiben muss, damit des funktioniert.

Hoffe auf eure Hilfe.
Greetz
Iggboert
 
  • #4
Also dann wollen wir mal!

Zunächst muß ausgewertet werden, wenn im Feld GT2 ein Bindstrich/Minuszeichen eingegeben wird. Hier muß das Ereignis zu diesem Feld Nach Aktualisierung mit einer Ereignisprozedur versehen werden.

Wie das geht weißt Du hoffentlich.

Ohne Fehlerbehandlung (die aber wichtig ist) muß folgendes Statment im Prozedurenrumpf eingegeben werden:

If Me!GT2 = - Then
Me!GT2_Type.BackColor = 12632256
Else
Me!GT2_Type.BackColor = 16777215
End If

Wird in dem Feld GT2 also ein Bindestrich eingegeben wird der Hintergrund des Feldes GT2_Type grau, jede andere Belegung des Feldes stellt die Hintergrundfarbe auf Weiß.

Wie ermittelt man nun die Farbwerte; in der Entwicklungsumgebung kann man sich die Farbpalette anzeigen lassen in dem man auf ein Feld mit Farbwerten und der Drei-Punkte-Schaltfläche klickt, dann macht man die gewünschte Farbe zur aktuellen in dem Feld und kann nun den Wert ablesen, soll das nicht dauerhaft sein muß man den alten Wert wieder herstellen.

Jetzt ist noch wichtig das Feld GT2_Type für andere Datensätze wieder den dort zutreffenden Bedingungen anzupassen, denn die oben vorgenommenen Änderungen gelten für das gesamte Formular und dem geänderten Feld und nicht nur für den angezeigten Datensatz.

Deshalb muß das Feld GT2 auch beim Anzeigen des Formulars ausgewertet werden. Dabei kann man denselben Algorithmus verwenden wie für das Feld, also siehe oben.

So das war's.

Gruß
Kurt Körner
 
Thema:

Access: Bedingte Formatierung auf andere Zelle bezogen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.849
Beiträge
708.001
Mitglieder
51.499
Neuestes Mitglied
sugarland
Oben