none
Einen Bericht automatisch von Hoch- auf Querformat in der Seitenansicht umschalten RRS feed

  • Frage

  • Moin,

    ich habe einen Bericht (Access 2010 auf Win 7), der ist vom Design in Hochformat.

    In Abhängigkeit vom Umfang der Daten wird beim Ausdruck auf quer umgestellt. Das klappt auch über

    'Reports(Bericht).Printer.Orientation = acPRORPortrait
    Reports(Bericht).Printer.Orientation = acPRORLandscape  

    Allerdings wollen die Anwender gern in der Vorschau, sprich Seitenansicht, die richtige Orientierung sehen bzw. auch selbst gern noch mal testweise umschalten können.

    Ich habe jetzt nach einem Makro- oder VBA-Befehl gesucht, mitttels dem man die manuelle Einstellung im Entwurfsmodus - Seite einrichten - Format nachbilden kann.

    Habe nur das gefunden

    DoCmd.OpenReport "Bericht", acViewDesign, , , acHidden
    Dim rpt As Report
    Set rpt = Reports(Bericht)
    rpt.PrtDevMode = 2 'Quer
    DoCmd.Close acReport, Bericht, acSaveYes
    DoCmd.OpenReport Bericht, acViewPreview, , , acWindowNormal

    was aber nicht zum gewünschten Ergebnis führt, in der Preview-Ansicht wird weiter die ehemals eingestellte Orientierung verwendet. (denn die PrtDevMode-Eigenschaft ist wohl letztendlich nichts anderes als Printer.Orientation, denke ich)

    Hat jemand eine Idee?

    Gruß

    Dienstag, 11. September 2018 09:28

Alle Antworten

  • Hallo Casi_G,

    in der msdb gibt es ein Beispiel, welches wie folgt beschrieben wird:

    "Das folgende Beispiel zeigt, wie die Ausrichtung eines Berichts geändert werden kann. In diesem Beispiel wird die Ausrichtung von Hochformat in Querformat oder von Querformat in Hochformat geändert (je nach momentaner Ausrichtung des Berichts)."

    Ich habe das zwar noch nie gemacht, liest sich aber so, als könnte es auf deine Problemstellung zutreffen.

    Grüße Volker

    Dienstag, 11. September 2018 15:45
  • Hallo Volker,

    leider nicht. Damit werden die Druckeinstellungen gesteuert. Die Druckvorschau selbst bleibt unverändert.

    Ich war auch schon darauf reingefallen, verbindet man doch Orientation auch mit der Druckvorschau.

    Gruß Casi

    Dienstag, 11. September 2018 16:41
  • Moin,

    um noch einmal mein Anliegen zu verdeutlichen, folgende Abbildung:

    (Bild einfügen wurde mir verweigert)

    Berichtentwurfstools - Seite einrichten - Hochformat / Querformat

    für dieses Umschalten suche ich das VBA-Pendant.

    Gruß Casi

    Mittwoch, 12. September 2018 05:38
  • Wenn ich den bericht gleich in der Vorschau öffne ist dieser im Querformat (auch abgespeichert)

    ansonsten ist das denke ich nur ein anzeigeding von Access - wenn ich Access neu startet steht der Bericht dann auch im Querformat in der Endwurfsansicht

    als so

    Dim Berichtsname As String
    Berichtsname = "rep_Protokoll"
    DoCmd.OpenReport Berichtsname, acViewDesign
    With Reports(Berichtsname).Printer
         .Orientation = 2
    End With
    DoCmd.Save ObjectType:=acReport, Objectname:=Berichtsname
     DoCmd.Close acReport, Berichtsname, acSaveYes
     DoCmd.OpenReport Berichtsname, acViewPreview

    Mittwoch, 12. September 2018 10:36
  • tut mir leid, verstehe Dich nicht.

    Also der Bericht xy ist erstellt in Hochformat. jetzt startet der Anwender eine Routine zum Erstellen der Datenquelle für den Bericht. Dabei kommt raus, dass die Daten nicht hochformatig passen. In der Routine zum Ausdrucken wird deshalb

    Reports(Berichtsname).Printer .Orientation = 2

    gesetzt.

    Bevor der Anwender aber den Druck startet, öffnet er den Bericht noch einmal in der Preview-Ansicht zum letzten Check. Diese Ansicht zeigt aber, auch wenn ich in die Öffnen-Routine

    Reports(Berichtsname).Printer .Orientation = 2 

    setze, weiterhin den Bericht im Hochformat, unabhängig davon, dass der Bericht durch den Drucker später tatsächlich quer ausgegeben wird. Und genau das verwirrt den Anwender jedesmal aufs neue.

    Gruß



    • Bearbeitet Casi_G Mittwoch, 12. September 2018 11:17
    Mittwoch, 12. September 2018 10:54
  • Hast du das Obige mal getestet?

    Also nachdem du weisst ob quer oder hoch einfach das oben ausführen - natürlich muss dein bericht zu dem zeitpunkt geschlossen sein

    machst eine Funktion von und übergibst den Berichtsnamen und die Ausrichtung einfach mit

    Montag, 17. September 2018 07:06
  • Hinter dem Printer - Objekt verbirgt sich der Drucker. das wird klar, wenn man sich die Eigenschaften dazu anschaut. Das hat nichts mit Berichtentwurfstools - Seite einrichten - Hochformat / Querformat zu tun.

    Gruß

    Donnerstag, 20. September 2018 14:08
  • Aber was spricht dagegen den Bericht anzupassen?

    noch einmal die frage 

    hast du es so einmal getestet?

     
    Montag, 24. September 2018 08:13
  • Dagegen spricht, dass User nicht in der Entwurfsansicht rumturnen.

    Und ja, ich benutze Reports(Berichtsname).Printer .Orientation = 2 seit Jahr und Tag mit dem Ergebnis, dass der Ausdruck entsprechend sich gestaltet, ohne dass sich an der Druckansicht was ändert. Gruß

    Donnerstag, 27. September 2018 08:40
  • Grundsätzlich musst die nur noch die Breite für das Formular anpassen.

    Private Sub Report_Load()


        If "Querformat" Then
            With Me.Printer
                .Orientation = acPRORLandscape
                Me.Width = .ItemSizeHeight
            End With
        End If
    End Sub

    Ich würde jetzt aber auch davon ausgehen, dass Controls auch noch verschoben werden müssen.

    Die Ränder würde ich sicherheitshalber immer zusätzlich speichern - die scheinen sich sonst gerne zu verändern.

    Ich würde aber überlegen zwei Reports anzulegen, dann musst du nur den richtigen wählen.


    Markus









    • Bearbeitet markus888 Mittwoch, 3. Oktober 2018 10:23
    Mittwoch, 3. Oktober 2018 09:50