Acc'02; Drucker automatisch zuweisen

Hallo Experten,
kann ich per Code für die Berichte einer Datenbankanwendung (Access 2002) festlegen, welcher Drucker jeweils verwendet werden soll?
Ich habe eine Anwendung, bei der zwei verschiedene Drucker eingesetzt werden (Laser- und Etikettendrucker), die ich den Berichten beim Drucken gerne automatisch zuweisen würde.
Danke für Euere Hilfe
Gruß Uli

Hallo Uli!

kann ich per Code für die Berichte einer Datenbankanwendung
(Access 2002) festlegen, welcher Drucker jeweils verwendet
werden soll?

Ja. Du hast die Printers-Auflistung; in der stehen die verfügbaren Drucker drin. Über die kommst Du auf ein gültiges Printer-Objekt (oder eben mehrere, wenigstens Laser- und Etikettendrucker). Den jeweils gewünschten weist Du der Printer-Eigenschaft Deines Berichts zu. Dazu muss der Bericht im Entwurf geöffnet sein. Bleistiftsweise:

DoCmd.OpenReport "MeinBericht\_Etiketten", acViewDesign
Set Reports("MeinBericht\_Etiketten").Printer = Printers(1) ' der Etikettendrucker
DoCmd.Close acReport, "MeinBericht\_Etiketten", acSaveYes
DoCmd.OpenReport "MeinBericht\_Etiketten", acViewPreview ' oder gleich direkt an den Drucker 

Du kannst aber auch die Printer-Objekt der Application vor dem Ausdruck der Berichte umstellen.

Gruß, Manfred

Hallo Manfred,

ich danke Dir für den Tipp.
Aber Dein Vorschlag funktioniert leider nicht.
Der Code läuft zwar ohne Error ab, aber der mit dem Dokument gespeicherte Drucker ändern sich nicht.

Ich hatte mir das folgendermaßen vorgestellt:
Ich habe ein Endlos-Formular mit allen Berichten und zu jedem dieser Datensätze ein Kombinationsfeld mit den zur Verfügung stehenden Druckern. Dieses Kombinationsfeld basiert auf einer Tabelle, die ich mit einer Funktion (=lösche Tabelleninhalte und füge anschließend alle zur Verfügung stehenden Drucker mit Bezeichnung und fortlaufender Nummer (beginnend mit 0) hinzu, was auch funktioniert) fülle.
In jedem Datensatz stehen nun der Berichtsname, eine Druckernummer (=jeweilige Index-Nummer des Druckers) und der Druckername (device Name) zur Verfügung.
Nach Aktualisierung des Kombinationsfeldes soll nun der Bericht in der Entwurfsansicht geöffnet, der Drucker geändert und der Bericht gespeichert werden.
Beim Drucken des Berichtes durch den User wird dann der eingestellte Drucker verwendet.
Hast Du noch eine Idee?
Danke

Gruß Uli

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Uli!

Ich hatte mir das folgendermaßen vorgestellt:
Ich habe ein Endlos-Formular mit allen Berichten und zu jedem
dieser Datensätze ein Kombinationsfeld mit den zur Verfügung
stehenden Druckern. Dieses Kombinationsfeld basiert auf einer
Tabelle, die ich mit einer Funktion (=lösche Tabelleninhalte
und füge anschließend alle zur Verfügung stehenden Drucker mit
Bezeichnung und fortlaufender Nummer (beginnend mit 0) hinzu,
was auch funktioniert) fülle.
In jedem Datensatz stehen nun der Berichtsname, eine
Druckernummer (=jeweilige Index-Nummer des Druckers) und der
Druckername (device Name) zur Verfügung.
Nach Aktualisierung des Kombinationsfeldes soll nun der
Bericht in der Entwurfsansicht geöffnet, der Drucker geändert
und der Bericht gespeichert werden.

Hmmm. Bei mir macht er das. Was ich vielleicht vergaß: Der Bericht hat auch eine Eigenschaft UseDefaultPrinter. Die muss auf False eingestellt sein. Angeblich soll Access das wohl automatisch machen, macht es aber nicht. Setze die Eigenschaft mal entsprechend…

Oder öffne Deine Berichte und überprüfe erst mal die Eigenschaft. Wenn sie auf True ist, wird das wohl der Grund sein. Also vorm Speichern auf False setzen.

Gruß, Manfred