Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gumpili am Januar 02, 2019, 11:48:33

Titel: Bericht an bestimmtem Drucker drucken
Beitrag von: gumpili am Januar 02, 2019, 11:48:33
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
Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: markusxy am Januar 02, 2019, 12:29:14
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.
Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: gumpili am Januar 02, 2019, 12:45:32
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.
Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: Beaker s.a. am Januar 02, 2019, 12:57:39
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
Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: gumpili am Januar 02, 2019, 13:03:23
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
Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: DF6GL am Januar 02, 2019, 13:24:06
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
.
.

Titel: Re: Bericht an bestimmtem Drucker drucken
Beitrag von: Beaker s.a. am Januar 02, 2019, 15:40:40
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