Application.Printers

Hallo,

habe folgenden Fall:

In einer Access-2003, die in einer Citrix-Anwendung ausgeführt wird, lasse ich die Drucker über Application.Printers auslesen.

Dim Drucker as Printer
For Each Drucker in Application.Printers
Debug.Print Drucker.DeviceName
Next

Problem ist folgendes: Die Ausgabe der Drucker erfolgt manchmal komplett und manchmal sehe ich nur 1 oder 2 oder … beliebige Drucker. Die Application.Printers-Auflistung hat dann nur diese Anzahl Drucker. Egal wer sich bei Citrix angemeldet hat - sporadisch sind mal alle Drucker da und mal nicht.

Gehe ich jedoch in einen Bericht in die Seitenansicht und nutze den Windows-Drucken-Dialog sehe ich immer alle Drucker.

In dieser Anwendung muss ein gezieltes Drucken des gleichen Berichts in Abhängigkeit von Benutzer auf unterschiedliche Drucker ausgeführt werden. Die Printereigenschaft kann ich durch oben beschriebenes Problem aber auch nicht einstellen, wenn der Drucker angeblich nicht da ist.

Hat jemand einen Tipp?

Danke.

EPa

Hallo,

versuch mal, über API an die Drucker zu kommen.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi,

api wäre eine Lösung, um die Drucker auszulesen. Das Auslesen könnte ich umgehen, wenn ich „schlampig“ einfach alle Drucker als Konstante vorgeben. Das eigentliche Problem liegt aber in der Zuweisung des Druckers an den Bericht. Hier kann ich wirklich nur die Drucker verwenden, die Application.Printers kennt.

Hab momentan keine Lösung parat.

Bei einem anderen Kunden, der ebenfalls in einer Citrix-Umgebung arbeitet, habe ich diese Probleme nicht. Die Citrix-Einstellungen des aktuellen Problem-Kunden sollen aber nicht verändert werden. Wird der Citrix-Admin auf keinen Fall machen.

Danke trotzdem für den Vorschlag.

Gruß EPa

Hallo,

„Printers“ gibt es ja erst seit „Kurzem“. Die vorher übliche Methode war, den Bericht für den Standarddrucker zu konfigurieren und den Standarddrucker mittels genannter APIs auf den akt. gewünschten umzustellen.

Die Printers-Auflistung hat vermutlich das „Manko“, nur die zum Zeitpunkt des Starts vom Access (oder der DB) bekannten Drucker zu enthalten. Möglicherweise wird unter Citrix der eine oder andere Drucker „später“ (als der DB-Start stattfindet) in die Citrix-Umgebung eingebaut.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi,

nicht verändert werden. Wird der Citrix-Admin auf keinen Fall
machen.

Ich denke Franz gesagt hat ist richtig. Gerade beim Citrix habe ich des öfteren Probleme gehabt mit den Druckern. Insbesondere die Client Drucker werden gerne mal „vergessen“ wenn sie nicht die richtigen Treiber haben.

Und wenn der „Citrix-Admin“ nichts ändert will, sollte er sich mal überlegen ob er den richtigen Job hat oder ihm die notwendige Ausbildung fehlt.

Davon ab, würde ich versuchen Accees über einen Batchjob zu starten und in dem Batch explizit die Drucker noch mal mit „net use“ einbinden. (Ich gehe mal davon aus, dass es Netzwerkdrucker sind.

Gruss
Joey

Den Jobwechsel für den Citrix-Admin kann ich ja so meinem Kunden nicht vorschlagen.

Mit dem Standarddrucker ist das übrigens auch eine ähnlich komische Sache. Der Standarddrucker ist Drucker_A. Wenn ich unsere Anwendung öffne oder aber auch eine andere Anwendung unter Citrix ist es Drucker_B.

Den Vorschlag mit net use werde ich an den Citrix-Admin weiterleiten und danach die Printers-Auflistung nochmal ausprobieren.

Erst mal vielen Dank für alle Hilfe.

EPa