Fragensteller
Einen Bericht automatisch von Hoch- auf Querformat in der Seitenansicht umschalten

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 = acPRORLandscapeAllerdings 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, , , acWindowNormalwas 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ß
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
-
-
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
-
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
-
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
-
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ß
-
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 SubIch 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