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
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.
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
Hallo
Wollte nochmals in die Runde fragen, ob mir jemand bei meiner besonderen Fragestellung weiterhelfen könnte.
Danke und Gruss
JOG vom Bodensee
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
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
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