Mai 19, 2022, 18:23:43

Neuigkeiten:

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


Feldeigenschaften in einem Bericht per VBA ändern

Begonnen von Markus Beck, April 13, 2022, 13:37:47

⏪ vorheriges - nächstes ⏩

Markus Beck

Guten Tag zusammen

Ich begebe mich auf Neuland und finde den richtigen Ansatz nicht. Vermutlich eine Kleinigkeit für Profis...

Ausgangslage
Ich habe einen Bericht mit einem Unterbericht erstellt (Angebot mit Angebots-Details).
Beim Drucken kann es vorkommen, dass nur noch gerade die Letzte Zeile (Total) auf die letzte Seite kommt, was optisch sehr unschön ist.

Lösungsansatz
"Manuell" löse ich es so, dass ich eine Feldeigenschaft "Top Padding" (sorry, habe nur den engl. Ausdruck) im Unterbericht  von 0 auf 0,2 setze und schon hat die letzte Seite noch mehrere Zeilen und es sieht anspreched aus.

Bisheriger Erfolg:
Via einen Button öffne ich den Bericht im Layoutmodus.
Setze den Fokus auf das Feld [QD_ArtNo]

    Dim strGapValue As String
    strGapValue = InputBox("Please Select Gap Value!")
    DoCmd.OpenReport "rep_QuotationDetails", acViewLayout, , , acWindowNormal    'später Hidden
    Reports!rep_QuotationDetails!QD_ArtNo.SetFocus

Das Problem:
Jetzt möchte ich mit einer VBA Anweisung den genannten "Top Padding"-Wert auf 0,2 verändern.
Etwa so...
    Reports!rep_QuotationDetails!QD_ArtNo.TopPadding = 0.3
bzw.
    Reports!rep_QuotationDetails!QD_ArtNo.TopPadding = strGapValue
    DoCmd.Close acReport, "rep_QuotationDetails"

Resultat:
Der Code läuft durch, keine Fehlermeldung. Aber leider auch keine Veränderung im Bericht :-(


Der Vollständigkeit halber hier noch der ganze Code:

Private Sub cmd_PrintSpaceAdjustment_Click()

    Dim strGapValue As String
    strGapValue = InputBox("Please Select Gap Value!")

    DoCmd.OpenReport "rep_QuotationDetails", acViewLayout, , , acHidden
    Reports!rep_QuotationDetails!QD_ArtNo.SetFocus
    Reports!rep_QuotationDetails!QD_ArtNo.TopPadding = strGapValue
    DoCmd.Close acReport, "rep_QuotationDetails"

End Sub
 

Wie immer bin ich sehr dankbar für Eure Hilfestellung.
Grüsse Markus

MzKlMu

Hallo,
ein Unterbericht braucht es hier nicht, ist auch eher ungünstig.
Du solltest einen gruppierten Bericht erstellen mit dem Angebot als Gruppenkopf und Details dann im Detailbereich. Damit lassen sich die Seitenumbrüche viel besser steuern.
Gruß
Klaus

Markus Beck

Hallo Klaus
Vielen herzlichen Dank für Deine Antwort.
Ich habe das so umgesetzt und Du hast Recht. Der Bericht kann dadurch wesentlich besser formatiert werden.
Mein Problem ist somit für diesen Fall gelöst.

Trotzdem, rein aus Neugier. Kann man die Feldeigenschaften eines Berichts, wie von mir angedacht, per VBA steuern?
Und wenn ja, warum läuft der Code bei mir ohne Fehler durch, jedoch ohne Auswirkung?