Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Bezeichnungsfeld ausgrauen bzw. schraffieren

Begonnen von mad, Dezember 05, 2016, 12:00:19

⏪ vorheriges - nächstes ⏩

mad

Hallo Zusammen,

habe folgendes Problem, ich habe per Abfrage einen Bericht erstellt. Dieser Bericht dient nur als Druckvorlage auf dem Anwesende Kollegen unterschreiben und ggf. eine Zeit eintragen können.
Auf dem Bericht habe ich allerdings auch ein Kontrollkästchen (Atemschutz) hinter jedem Namen und ein "Bezeichnungsfeld20" als Platzhalten für den handschriftlichen Eintrag der Zeit wieviel Minuten der Kollege unter Atemschutz war.
Nun möchte ich, wenn im Kontrollkästchen (Atemschutz) kein Häckchen gesetzt ist, daß das "Bezeichnungsfeld20" ausgegraut oder schraffiert wird. Dann sieht man nämlich gleich das es sich hier um keinen Atemschutzträger handelt und somit auch keine Zeit eingetragen werden kann.

Folgenden Code habe ich leider ohne Erfolg ausprobiert

Private Sub Bezeichnungsfeld20__AfterUpdate()
If Me!Atemschutz = True Then
    Me!Bezeichnungsfeld20.BackColor = vbWhite
Else
    Me!Bezeichnungsfeld20.BackColor = vbGray
End If
End Sub


Vielleicht könnte mir jemand helfen.
Danke
mad

Lachtaube

In Berichten sollte das Format-Ereignis des Bereichs, in dem das Steuerelement liegt, der richtige Ort zur "malerischen Gestaltung" sein.
Grüße von der (⌒▽⌒)

mad

#2
Ich habe den Code jetzt wie folgt auf den Detailbereich (nach Formatierung) gelegt, leider tut sich immer noch nichts.

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    If Me!Atemschutztraeger = 1 Then
    Me!Bezeichnungsfeld20.BackColor = vbWhite
        Else
    Me!Bezeichnungsfeld20.BackColor = vbGray
    End If
End Sub



Gruss
mad

MzKlMu

Hallo,
ein KK hat nicht 1 wenn angehakt, sondern -1. Am besten verwendet man True wie Du es im 1.Beitrag schon gemacht hast. Warum hast Du jetzt 1 genommen für den Vergleich ?
Gruß Klaus

MaggieMay

Zitat von: mad am Dezember 11, 2016, 10:06:04
Ich habe den Code jetzt wie folgt auf den Detailbereich (nach Formatierung) gelegt, leider tut sich immer noch nichts.
In welcher Ansicht wird der Bericht geöffnet?
In der Berichtsansicht werden die Format- (und Print-) Ereignisse nicht durchlaufen.
Freundliche Grüße
MaggieMay

mad

#5
Hallo Zusammen,

konnte mich wegen Krankheit leider in letzter Zeit nicht melden.

Hallo MzKlMu,
habe True und -1 versucht, tut sich aber leider nichts.

Hallo MaggieMay,
der Bericht wird in der Seitenansicht geöffnet, aber geht trotzdem nicht.

An was könnte es event. noch liegen?


Gruss
mad

MzKlMu

Gruß Klaus

DF6GL

#7
Hallo,


--vbGray  gibt es nicht. (A2010)
--In einem Bericht sind ungebundene KK nicht datensatzweise editierbar und auswertbar.
--In einem Bericht sind gebundene KK nicht editierbar
--Das Ganze gelingt nur, wenn das KK in der Tabelle mitgeführt, in einem Formular editiert und der Bericht in Seitenansicht geöffnet wird..

Tipp:   In jedem Modul(kopf) "Option explicit" eintragen.

MaggieMay

Hallo,

selbstverständlich muss das Kontrollkästchen aus der Abfrage gefüllt werden.
Dann sollte folgendes funktionieren:
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
    If Me!Atemschutz = True Then
        Me!Bezeichnungsfeld20.BackColor = vbWhite
    Else
        Me!Bezeichnungsfeld20.BackColor = vbGrey
    End If
End Sub

vorausgesetzt die beteiligten Steuerelemente befinden sich im Detailbereich.

PS:
Der Eintrag von "Option Explicit" im Kopf eines jeden Moduls und das Anhaken der VBA-Option "Variablendeklaration erforderlich" sorgt dafür, dass Schreibfehler wie "vbGray" beim Kompilieren erkannt werden. Darauf sollte man also nicht verzichten!
Freundliche Grüße
MaggieMay

mad

Hallo Zusammen,
habe Gray in Grey geändert, die Steuerelemente befinden sich im gleichen Detailbereich und das Kontrollkästchen wird aus der Abfrage gefüllt. Aber leider funktioniert es immer noch nicht.
Habe auch mal "Option Explicit" wie von DF6GL vorgeschlagen eingetragen. Dann kommt aber die Fehlermeldung: Variable nicht definiert.

Gruss
mad

MzKlMu

Hallo,
ZitatDann kommt aber die Fehlermeldung: Variable nicht definiert.
genau das ist ja der Sinn dieses Eintrags. Zeige jetzt bitte noch mal den aktuellen Code und nenne die Variable die nicht definiert ist.
Es wäre geschickt gewesen, wenn Du das gleich gemacht hättest, wie sonst soll man einen Fehler finden.
Gruß Klaus

mad

Entschuldigung,

im Anhang das Bild mit dem Code und welche Variable er anmekert.
Es darf auch eine andere Farbe sein, event. Schwarz.
Ich hoffe das hilft weiter.


Danke
mad

MzKlMu

Hallo,
vbgrey gibt es nicht als Farbkonstante. Du kannst auch einen Farbcode zuweisen.
Stell im Feld manuell die gewünschte Hintergrundfarbe ein. In den Eigenschaften findest Du dann für den Hintergrund eine Farbzahl, kopieren und für die Zuweisung verwenden.
Gruß Klaus

Lachtaube

Einen Grauton würde ich mir aus dem Stegreif noch mit RGB(&C0, &HC0, &HC0) zutrauen zuzuweisen. :)
Grüße von der (⌒▽⌒)

mad

Vielen Dank,
hat funktioniert. Habe 0 für schwarz eingegeben.


Danke nochmals für die Hilfe bei allen.
Gruss
mad