Bericht aus Access über Makro ausdrucken

Hallo Welt

Wenn ich in MS Access 2010 einen Bericht „zu Fuß“ (Bericht anzeigen und Strg+P) ausdrucke, dann funktioniert das wunderbar.
Damit ich das beidseitige Drucken nicht jedesmal extra einschalten muss, habe ich ein Makro geschrieben. Wenn ich dieses ausführe, bekomme ich vom Drucker die Meldung „Auflösung wird nicht unterstützt“. Das Makro schaut folgendermaßen aus:

Sub drucken()
    Dim vsx As String
    Dim bsx As String
    Dim VonS As Integer
    Dim BisS As Integer
    Const RptNam = „Festplatteninhalt“
    
    vsx = InputBox(„Von Seite“, „Druckbeginn“, „1“)
    bsx = InputBox(„Bis Seite“, „Druckbeginn“, „99“)
    VonS = Val(vsx)
    BisS = Val(bsx)
        
    DoCmd.OpenReport RptNam, acPreview
    Reports(RptNam).Printer.Duplex = acPRDPHorizontal
    DoCmd.PrintOut acPrintAll, VonS, BisS, acDraft
    DoCmd.Close acReport, RptNam, acSaveNo
End Sub

Wer weiß, was an der Fehlermeldung schuld sein kann?

Danke
Roland

Hallo Roland,

Hallo Welt

ups, ähem ich kann nur für reden, die anderen Milliarden Menschen müssen schon persönlich hier antworten :smile:

Wenn ich in MS Access 2010 einen Bericht „zu Fuß“ (Bericht
anzeigen und Strg+P) ausdrucke, dann funktioniert das
wunderbar.

Damit ich das beidseitige Drucken nicht jedesmal extra
einschalten muss, habe ich ein Makro geschrieben.

Ich glaube zu wissen daß Access keinen Makrorekorder hat, sehr schade :frowning:

Wenn ich
dieses ausführe, bekomme ich vom Drucker die Meldung
„Auflösung wird nicht unterstützt“.

Nicht gut. Denn exakt diese Fehlermeldung ist unbekannt wenn ich Tante Guckl befrage nach:
vba access Auflösung wird nicht unterstützt
bzw.
vba Auflösung wird nicht unterstützt
Und das ist nicht gut.

Das Makro schaut folgendermaßen aus:

Wann kommt denn die Fehlermeldung? Du startet den Code, er läuft problemlos durch, schickt wohl die Bytes als Druckauftrag an den Drucker, und der Drucker reagiert bei Durchsicht der Bytes mit der Fehlermeldung. Ist das so?

Ui, Eintracht hat gewonnen, 3:0 *freu, staun* :smile: Sorry, Webradio läuft nebenbei.

Oder meldet sich der VB-Debugger, in welcher Codezeile?

    DoCmd.OpenReport RptNam, acPreview
    Reports(RptNam).Printer.Duplex = acPRDPHorizontal
    DoCmd.PrintOut acPrintAll, VonS, BisS, acDraft
    DoCmd.Close acReport, RptNam, acSaveNo

Die Codezeile für Duplexeinstellung ist sicher:
Reports(RptNam).Printer.Duplex = acPRDPHorizontal
lasse sie einfach mal weg, was geschieht?

M.E. passiert dann das Gleiche wie vorher, also Fehlermeldung denn einseitiger oder doppelseitiger Druck hat doch Null mit Auflösung zu tun *glaub*

Wer weiß, was an der Fehlermeldung schuld sein kann?

K.A., ich würd um manches auszuschließen so codieren im wichtigen Codeteil
DoCmd.OpenReport RptNam, acPreview 'falls nötig
DoCmd.PrintOut acPrintAll, VonS, BisS, acDraft
oder So:
DoCmd.OpenReport RptNam, acPreview 'falls nötig
DoCmd.PrintOut acPrintAll

Ach, acDraft fiel mir eben erst auf, ist wohl beim Drucken Entwurfsqulaität, das ist schon was was mit Auflösung zu tun hat.
Und „oben“ im Code dann das unwichtige wie die Inputs, die VL()s auch raus.

Wenn das alles keine neuen Erkenntnisse bringt, warte hier noch bis Di o.ä. ab, dann bitte ggfs. den Mod dich ins Access-Brett zu beamen.

Gruß
REinhard

Hallo Reinhard

Danke für die ausführliche Antwort.

Das Makro läuft durch und schickt die Daten an den Drucker. Die Fehlermeldung steht dann im Druckerstatus.

Ich hab jetzt testhalber sowohl Duplex als auch acDraft aus dem Makro entfernt, aber dadurch hat sich gar nichts geändert. Auch die Entfernung der Von- und Bis-Seite bringt nix.

Schöne Grüße aus Österreich
Roland