Neuigkeiten:

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

Mobiles Hauptmenü

"Bedingte" Formatierung eines Textfeldes auf einer Etikette

Begonnen von JOG, Juni 25, 2012, 21:39:35

⏪ vorheriges - nächstes ⏩

JOG

Hallo

Ich drucke von einem Datensatz je 5 Etiketten aus und möchte, dass ein Textfeld auf dem Etikettenbericht in Abhängigkeit des abgefüllten Inhalts unterschiedlich formatiert wird. Wie kann ich das einfach lösen. If - then Auswahl habe ich erfolglos probiert. Sobald die erste Bedingung erfüllt war, wurden alle nachfolgenden Etikettenfelder mit derselben Formatierung geschrieben.

Weiss jemand Rat? ???

JOG

MzKlMu

Hallo,
Du brauchst If Then Else.
Jeder Zustand muss definiert werden.
Zeige bitte mal den vollständigen Code Deines Versuchs. Das solltest Du zukünftig immer gleich machen.
Gruß Klaus

JOG

Hallo

Dies mein Code


Private Sub Detailbereich_Print(Cancel As Integer, PrintCount As Integer)
    Dim AnzahlEtiketten As Long, I As Long, TypFeld As String
    AnzahlEtiketten = 5
   
        If AnzahlEtiketten = 0 Then
    ' Wenn Wert 0 ist, dann gar nichts drucken
        Me.NextRecord = True
        Me.MoveLayout = False
        Me.PrintSection = False
       
      Else
      ' Druckvorgang für diesen Datensatz wiederholen,
      ' wenn AnzahlEtiketten noch nicht erreicht ist
        End If
     
        If PrintCount < AnzahlEtiketten Then
            Me.NextRecord = False
        End If
           
           
        For I = 1 To AnzahlEtiketten
        Me.txtZusatz__txtMusterTyp = DLookup("Z_Text", "tblZusatz", "ZID=" & PrintCount Mod (AnzahlEtiketten + 1))
        Next I
       
        If Me.txtZusatz__txtMusterTyp = "Prüfmuster Anfang" Then
        Me.txtZusatz__txtMusterTyp.FontItalic = True
        Else: Me.txtZusatz__txtMusterTyp.FontBold = True
        End If
       
       End Sub



Problem: sobald der nächste Datensatz mit 5 Etiketten gedruckt wird, wird die Formatierung nicht "zurückgestellt" sondern bleibt auf der Formatierung der erfüllten If-Bedingung


JOG

Hallo

Wollte nochmals in die Runde fragen, ob mir jemand bei meiner besonderen Fragestellung weiterhelfen könnte.

Danke und Gruss

JOG vom Bodensee

bahasu

N'abend,

Frage 1: Wieso fragst Du If AnzahlEtiketten=0 ab, wenn Du in der Zeile darüber AnzahlEtiketten auf 5 gesetzt hast?

Frage 2: Wenn das folgende die erwähnte if-Bedingung ist:
        If Me.txtZusatz__txtMusterTyp = "Prüfmuster Anfang" Then
            Me.txtZusatz__txtMusterTyp.FontItalic = True
        Else
            Me.txtZusatz__txtMusterTyp.FontBold = True
        End If
Fehlt dann nicht im else-Zweig ein Zurücksetzen von FontItalic?

Wenn dem so ist, ziehe ich eine Anweisung in der Art vor:
     Me.txtZusatz__txtMusterTyp.FontItalic = Me.txtZusatz__txtMusterTyp = "Prüfmuster Anfang"
Damit erspart man sich den else-Teil.

Harald
Servus

JOG

Hallo Harald

Besten Dank für Deine Tipps. Zu Frage 1: Du hast recht, diese müsste nicht zwingend definiert sein.
Dein Tipp/Frage "Fehlt dann nicht im else-Zweig ein Zurücksetzen von FontItalic" hat mir auf die Sprünge geholfen. Habe jeweils vergessen die entsprechende Formatierung zurückzusetzen, deshalb blieb jeweils für den Rest des Ausdrucks die Formatierung, bei welcher die Bedingung zuerst erfüllt worden ist. Nun konnte ich's mit der erneuten Definition der Formatierung im Else-Bereich lösen.
Dein Vorschlag hat bei mir auch funktioniert, doch wenn ich mehrere zutreffende Kriterien berücksichtigen möchte ("Prüfmuster Anfang" & Prüfmuster Ende") hats irgendwie nicht hingehauen.
Aber so wie oben gehts ja auch.

Danke für die Hilfe. ;D
JOG

bahasu

Moin Jog,

das freut mich.

Zitat von: JOG am Juli 02, 2012, 22:00:29
mehrere zutreffende Kriterien berücksichtigen möchte ("Prüfmuster Anfang" & Prüfmuster Ende")

So etwas könnte lauten:

Me.txtZusatz__txtMusterTyp.FontItalic = Me.txtZusatz__txtMusterTyp = "Prüfmuster Anfang" or Me.txtZusatz__txtMusterTyp = "Prüfmuster Ende"

Harald
Servus