Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Papierformat von Bericht mit VBA auswählen





Frage

Wie im Subject schon beschrieben möchte ich verschieden Papierformate (für verschiedene Etiketten auf Endlospapier) vor der PrintOut-Methode für den entsprechenden Bericht auswählen. Dabei handelt es sich aber um Benutzerdefinierte Papierormate, die ich zufor im Druckmanager unter Servereigenschaften eingerichtet habe, also keine Standardformate. Mit "AcPrintPaperSize" kann ich nur Standardformate wählen, denke ich. Oder kann man die Formate irgendwie anpassen?

Antwort 1 von Sir_Hilly

Sowas ähnliches hatte ich auch schonmal is aber schon länger her. Irgendwie geht das wenn per API den Druckerdialog aufrufst dort kannst dan so ziemlich alles einstellen.

Ich glaub ich hatte das aus der Access KnowHow Mdb 3.0 musst mal bei Google suchen.

Gruß

Antwort 2 von Marie

die PrintOut-Methode geht nicht in allen accessversionen. Lass dir doch den Bericht anzeigen und drück dann auf drucken, dann kannste auch sehen ob du das richtige ausdruckst und kannst den drucker einstellen.

Aber die KnowHow.mdb findest du bei Dieter auf www.topsolutions.de

Gruß Marie

Antwort 3 von Marie

Merk's Dir mal Hilly, dass Du mir die Leute zu Dieter schickst, wenn se die KnowHow suchen, ich sag Dir dann heut abend warum :-)))

Antwort 4 von Locke

Das geht mit:
Printer.PaperSize = 121
Wobei 121 einem der von mir eingerichteten Formaten entspricht.
Jedes Papierformat hat eine Nummer, die man mit Papersize auch abfragen kann.
Danke für Eure Hilfe

Antwort 5 von PotzBlitz

Hallo Locke,

du kannst dir den üblichen Drucken-Dialog mit Druckerauswahl und Papierformat usw. anzeigen lassen, wenn du das hier ausführst:

On Error Resume Next
RunCommand acCmdPrint

Der darauf erscheinende Drucken-Dialog gilt immer für das Objekt (Formular, Bericht usw.), das gerade den Fokus hatte. Allerdings funktioniert im Dialog der "Einrichten"-Button nicht, da gerade Code ausgeführt wird, aber für deine Zwecke dürfte das relativ unwichtig sein, denn das Papierformat wird bei den Eigenschaften des Druckers eingerichtet.

In der Access-eigenen Symbolleiste "Datei" ist dieser Dialog ebenfalls enthalten als "Drucken Strg+P". Leider taucht dieser Punkt nicht im Anpassen-Dialog von den Menüleisten auf, aber du kannst diesen Drucken-Menüpunkt mit gedrückter Umschalttaste und Drag&Drop in eine eigene Menüleiste kopieren, falls du so eine hast. In dem Fall müsste der Drucken-Dialog uneingeschränkt funktionieren.

Gruss
PotzBlitz

Antwort 6 von Locke

So, sitze mal wieder an dieser Datenbank, gefällt mir aber noch nicht.
Gibt es nicht eine andere Alternative das Papierformat festzulegen?
Ich kann das zwar hier auf meinem Rechner wie oben beschrieben festlegen, nur wenn ich auf einen anderen PC das installiere (läuft mit einer Runtimversion), dann stimmt die Zuordnung nicht mehr.
D.h. Printer.PaperSize = 121 ist bei mir das richtige Format, nicht aber auf einem anderen PC, wo wohlmöglich noch mehr Drucker installiert sind.

Das Problem ist auch immer die Handarbeit, da ich die Formate zuvor im Druckmanager unter Servereigenschaften einrichten muß.

Antwort 7 von Locke

So,
ich drucke den Bericht so aus:

DoCmd.OpenReport stDocName, acViewPreview
DoCmd.PrintOut acPrintAll, , , acHigh, Anzahl_Seiten, True

Anzahl_Seiten=Variable

Beim öffnen des Berichts habe ich folgendes festgelegt:

Printer.PaperSize = varPapersize

varPapersize ist als Wert in der Tabelle hinterlegt.

Problem: Der Bericht wird zwar geöffnet, aber das Papierformat wird nicht geändert. Gehe ich auf Seiteneinrichtung, steht das neue Papierformat aber drin. Wenn ich die Seiteneinrichtung mit ok beende übernimmt er auch sofort das Format.
Gehe ich mit abbrechen raus und speichere den Bericht, wird das Format beim nächsten Öffnen auch übernommen.

Wie kann ich das nun erzwingen, das dieses Format beim Öffnen übernommen wird?

Antwort 8 von Locke

Thread nach oben

Antwort 9 von Locke

Vielleicht ist ja heute jemand wissender hier