Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Im Netzwerk drucken

Begonnen von Gerdi, Mai 26, 2026, 17:14:10

⏪ vorheriges - nächstes ⏩

Gerdi

Hallo zusammen, ich muss euch noch einmal bemühen. Ich muss einen bestimmten Netzwerkdrucker im Firmennetzwerk ansprechen, der nicht der Standard Drucker ist. So weit ich informiert bin, benötige ich den Druckername und den Drucker Port (Anschlussname)!!?? Ich habe verschiedene Variationen ausprobiert. Es kommt die Fehlermeldung "Ungültiger Prozeduraufruf oder ungültiges Argument"

Es sollte doch so aussehen  Application.AvtivePrinter = "Druckername Druckerport:"

Muss ich noch den Servername hinzufügen??

Gruß
Gerdi 

Knobbi38

Hallo Gerdi,

auch die Netzwerkdrucker sind unter application.printers normalerweise aufgelistet, denn auch diese verwenden einen lokalen Treiber. Um den Drucker ansprechen zu können, weist du einen Drucker der Printers-Auflistung der Application.Printer Eigenschaft zu, so wie in der Hilfe beschrieben. Du kannst auch den Printer direkt dem geöffneten Report zuweisen.
 
Einen Port wie in Excel braucht man in Access übrigens nicht.

Knobbi

Gerdi

Hallo Knobbi38,

aber wo liegt jetzt mein Fehler?? Das drucken funktioniert nicht :-\ Hast du eine Idee??

Knobbi38

Mit "funktioniert nicht" kann ich nicht viel anfangen. Kannst du die Seitenansicht per Druckerdialog auf dem gewünschten Drucker ausdrucken?
 

Gerdi

Moin Knobbi38, ich bin zur Zeit nicht in der Firma. Du hast mir am 4 August mit dem Beitrag "Druckerwechsel per VBA" sehr geholfen. Mit dem Etikettendrucker funktioniert es super, dieser ist aber auch direkt mit USB am Rechner angeschlossen. Daher habe ich gedacht, sollte auch mit dem Netzwerkdrucker so funktionieren. 

Knobbi38

Das sollte genauso funktionieren. Der Drucker muss unter "Drucker und Scanner" bei den Windows-Einstellungen gelistet sein. Die exakten Namen kannst du mit folgender Zeile im Direktfenster erfahren:
for Each prt In Application.Printers : Debug.Print prt.DeviceName : next prt
Knobbi38

Gerdi

Ich habe mir die Windows-Druckertestseite ausdrucken lassen. Hier ist der Druckername und weiter Parameter angegeben, dieser ist zu 100% der gleiche wie er verwendet werden soll. Der Drucker mit diesem Namen ist auch unter "Drucker und Scanner" gelistet. Ich werde morgen zur Firma fahren und alles nochmals testen. Ich werde mich am nachmittags noch einmal melden.
Schon mal DANKE für deine Unterstützung.

Gruß Gerdi

Gerdi

Hallo Knbbi38, ich wollte mich ja nochmals melden. Ich habe heute im oberen Bereich, unter der Zeile
Set objPrinter = Application.Printers(PRT_NAME) die Zeile
Set Application.Printer = objPrinter eingefügt jetzt funktioniert der Ausdruck auf dem nicht Standard Drucker, so wie es sein soll.
Das ist sicherlich nicht ganz sauber funktioniert aber. Was sagst du dazu???

Gruß Gerdi

Knobbi38

Genauso wird das üblicherweise gemacht - alles ok.
Wenn du den Drucker wieder zurücksetzen möchtest:
Set Application.Printer = NothingDamit ist der Defaultprinter wieder aktiv.

Knobbi38

Gerdi

Siehe meinen Beitrag "Druckerwechsel per VBA" aus August 2025
Funktioniert dann auch noch die Prüfung ob der Report geladen ist? Soll ich die IF Anweisung ansonsten löschen?

Knobbi38

#10
Hallo Gerdi,

ja, die Funktion kannst du natürlich immer noch nutzen. Die Frage ist jedoch, ob die noch benötigt wird.
Im anderen Beispiel wird der Drucker direkt dem Report zugewiesen und dann ausgedruckt. Wenn ich dich richtig verstanden habe, möchtest du in diesem Fall erst den Zieldrucker auswählen, ausdrucken und dann wieder auf den Standarddrucker zurücksetzen. Beide Methoden sollten gleich gut funktionieren, egal, ob es sich um einen Etikettendrucker oder einen Netzwerkdrucker handelt.

Hier ein kleiner Tipp und eine Fleißaufgabe:
Die Druckernamen sollten nicht direkt im Code stehen, sondern gerätebezogen in einer Tabelle im BE hinterlegt werden. Bei Bedarf werden die Einstellungen dann einfach aus dieser Tabelle geladen. So verwendet beispielsweise PC1 in Büro 1 eine bestimmte Auswahl an Druckern, lokal oder im Netz, während PC2 in Büro 2 andere Drucker verwendet, die vielleicht etwas günstiger zu erreichen sind. Der Etikettendrucker wird dabei gemeinsam genutzt.
Solche Einstellungen lassen sich problemlos in einer Tabelle im BE verwalten. Falls eine Wartung an einem Drucker erforderlich ist, kann ein Administrator die Einstellungen im BE vorübergehend ändern, ohne den Code anpassen zu müssen.
Im Übrigen bietet sich für solche Einstellungen auch die Backstage-Ansicht von Access an, da man darauf nicht so häufig zugreift – ähnlich wie Access das handhabt.

Gruß
Knobbi38