Hallo zuammen,
ich habe Access 2016, Win10
Ich habe einen Bericht: VDA-Anhänger manuell A4
Drucker: HP Verwaltung oben
Wenn ich auf mein Drucker Button im Formular drücke, soll der Bericht direkt an den gewünschten Drucker gesendet werden und nicht an den Standard Drucker
Mein Script sieht folgender maßen aus:
Dim stDocName As String
stDocName = "VDA-Anhänger manuell A4"
DoCmd.OpenReport "VDA-Anhänger manuell A4", acViewPreview, , , acHidden
Set Application.Printer = Application.Printers("HP Verwaltung oben")
DoCmd.PrintOut acReport, "VDA-Anhänger manuell A4"
Ich bekomme aber einen Laufzeitfehler
Was ist falsch
Danke schon mal
Gruß Andrea
Welcher Fehler, bei welcher Codeanweisung?
Warum hinterlegst du den Drucker nicht fix?
Wenn das dynamisch passieren soll, macht es keinen Sinn, das Dokument zuerst zu öffnen.
Ändere den Drucker und dann drucke normal aus.
Ich kann leider nicht den Standard Drucker nehmen, denn um das Dokument wo es geht ist DinA5.
Die neuen Sharp Arbeitsplatz Drucker haben keinen Sensor mehr drin, wenn der vordere Schacht offen ist und Papier drin liegt.
Deswegen lege ich einen extra Drucker an, mit Schachtzuweisung, den ich dann bei diesem Bericht auswählen möchte.(Ich mache einen extra Button für diese Mitarbeiterin, die dann darüber den Druck anstoßen soll)
Ich kann den Drucker nicht fest hinterlegen aus dieser Applikation drucken mehrere Leute mit anderen Druckern (die aber noch den richtigen Schacht wählen)
Die Fehlermeldung ist folgende:
Laufzeitfehler 2498
Sie haben für eines der Argumente einen Ausdruck eingegeben der nicht den für das Argument erforderliechen Datentyp hat.
Hallo Andrea,
1. Warum deklarierst du eine Variable, weist ihr einen Wert zu und
verwendest sie dann nicht?
2. Bei der Fehlermeldung würde ich als erstes mal die Kommas zählen
beim ".OpenReport", - oder gleich benannte Parameter verwenden.
gruss ekkehard
Hallo Ekkehard,
die variable habe ich definiert, weil ich das normal über variablen mache, habe dann aber hin und her probiert an was es liegt....
Wenn ich den Debug Modus anhabe kommt die Fehlermeldung bei
DoCmd.PrintOut acReport, "VDA-Anhänger manuell A4" genaus so wenn ich
DoCmd.PrintOut acReport, stDocName
angebe-
Der Drucker wird richtig gesetzt. Er hat wohl echt nur beim Druck Befehl ein Problem.
Gruß andrea
Hallo,,
entferne zunächst diese unsäglichen Leer- und Sonderzeichen aus dem Berichtsnamen...
Sub btnDrucken_Click()
Set Application.Printer = Application.Printers("HP Verwaltung oben") ' falls der Drucker wirklich so heißt
DoCmd.OpenReport "VDA_Anhänger_manuell_A4", acViewPreview
End Sub
ZitatDer Drucker wird richtig gesetzt
Woher weißt Du das?
Gib alle installierten Drucker im Direktfenster aus:
.
.
Dim prt as Printer
For each prt in Application.Printers
debug.print prt.Devicename
Next
.
.
Hallo Andrea,
Zitatkommt die Fehlermeldung bei DoCmd.PrintOut
Ja, und, hast du dir die Methode mal angeschaut, um herauszufinden
was für Parameter diese erwartet?
Der zweite Parameter (PageFrom) erwartet eine Zahl, du übergibst einen
String. Daraus entsteht dann eben ein Fehler bezüglich des Datentyps.
gruss ekkehard