none
Zuweisung Drucker / Papierschacht

    Frage

  • Hallo,

    ich muss verschiedene Reports an verschiedenen Druckern bzw. Papierschächten drucken. Bisher habe ich die Reports jeweils mehmals dupliziert und den jeweiligen Drucker / Schacht zugewiesen. Nach Änderungen am Report musste alles wieder neu dupliziert und zugewiesen werden,.nach jedem Druckertausch ebenfalls.

    Nun habe ich alles so umgebaut, dass die Anwender über Comboboxen für jeden Report einen Drucker auswählen können (Standarddrucker ändern -> Drucken -> Standarddrucker zurücksetzen). Drucker mit mehreren Papierschächten habe ich je Schacht einmal installiert.

    Die Drucker zuweisung funktioniert, aber die Schachtzuweisung nicht, die Reports kommen immer auf dem Standardschacht. Als ob im Report "Standardschacht" gespeichert ist und die Druckereinstellung überschreibt.

    Gibt es dafür eine Lösung? Oder muss ich alles wieder zurück ändern?

    Danke & Gruß

    Thomas

    Mittwoch, 18. Juli 2012 15:22

Antworten

  • Thomas Warnke wrote:
    > ...
    > über Comboboxen
    > für jeden Report einen Drucker auswählen können (Standarddrucker
    > ändern -> Drucken -> Standarddrucker zurücksetzen). Drucker mit
    > mehreren Papierschächten habe ich je Schacht einmal installiert.
    >
    > Die Drucker zuweisung funktioniert, aber die Schachtzuweisung nicht,
    > die Reports kommen immer auf dem Standardschacht. Als ob im Report
    > "Standardschacht" gespeichert ist und die Druckereinstellung überschreibt.
    > ...
     
    Joo, Probleme dieser Art sind bekannt.
     
    Manchmal hilft es, nicht den Standarddrucker zu ändern, sondern
    direkt den Drucker des Berichtes. Also z.B.
     
    DoCmd.OpenReport "MeinBericht", acViewPreview, , , acHidden
    Reports!MeinBericht.Printer = Application.Printers("MeinDrucker")
     
    'wenn das nicht klappt/reicht, kannst du hier auch versuchen, den
    'Schacht zuzuweisen, s. die Konstanten in <F1> für "PaperBin" z.B.
    'Reports!MeinBericht.Printer.PaperBin = acPRBNAuto
     
    DoCmd.OpenReport "MeinBericht", acViewNormal
    DoCmd.Close acReport, "MeinBericht", acSaveNo
     
    --
    Servus
    Karl
    *********
     
     
     
    • Als Antwort markiert Thomas Warnke Freitag, 20. Juli 2012 07:42
    Mittwoch, 18. Juli 2012 20:11

Alle Antworten

  • Thomas Warnke wrote:
    > ...
    > über Comboboxen
    > für jeden Report einen Drucker auswählen können (Standarddrucker
    > ändern -> Drucken -> Standarddrucker zurücksetzen). Drucker mit
    > mehreren Papierschächten habe ich je Schacht einmal installiert.
    >
    > Die Drucker zuweisung funktioniert, aber die Schachtzuweisung nicht,
    > die Reports kommen immer auf dem Standardschacht. Als ob im Report
    > "Standardschacht" gespeichert ist und die Druckereinstellung überschreibt.
    > ...
     
    Joo, Probleme dieser Art sind bekannt.
     
    Manchmal hilft es, nicht den Standarddrucker zu ändern, sondern
    direkt den Drucker des Berichtes. Also z.B.
     
    DoCmd.OpenReport "MeinBericht", acViewPreview, , , acHidden
    Reports!MeinBericht.Printer = Application.Printers("MeinDrucker")
     
    'wenn das nicht klappt/reicht, kannst du hier auch versuchen, den
    'Schacht zuzuweisen, s. die Konstanten in <F1> für "PaperBin" z.B.
    'Reports!MeinBericht.Printer.PaperBin = acPRBNAuto
     
    DoCmd.OpenReport "MeinBericht", acViewNormal
    DoCmd.Close acReport, "MeinBericht", acSaveNo
     
    --
    Servus
    Karl
    *********
     
     
     
    • Als Antwort markiert Thomas Warnke Freitag, 20. Juli 2012 07:42
    Mittwoch, 18. Juli 2012 20:11
  • Hallo,

    danke, das funktioniert. Ein Problem habe ich noch bei Verwendung der WhereCondition. Am Bildschirm werden nur die gefilterten Daten gezeigt, auf dem Ausdruck ist der Filter aber wieder weg.

    Ich mache es jetzt mit PrintOut, spricht etwas dagegen?

    Appilcation.Echo False
    DoCmd.OpenReport "MeinBericht", acViewPreview, , strMeinFilter
    Reports!MeinBericht.Printer = Application.Printers("MeinDrucker")
    DoCmd.PrintOut

    DoCmd.Close acReport, "MeinBericht", acSaveNo
    Appilcation.Echo True

    Gruß
    Thomas



    Donnerstag, 19. Juli 2012 07:22
  • Thomas Warnke wrote:
    > ...
    > danke, das funktioniert. Ein Problem habe ich noch bei Verwendung der
    > WhereCondition. Am Bildschirm werden nur die gefilterten Daten
    > gezeigt, auf dem Ausdruck ist der Filter aber wieder weg.
    >
    > Ich mache es jetzt mit PrintOut, spricht etwas dagegen?
    >
    > Appilcation.Echo False
    > DoCmd.OpenReport "MeinBericht", acViewPreview, , strMeinFilter
    > Reports!MeinBericht.Printer = Application.Printers("MeinDrucker")
    > DoCmd.PrintOut
    > DoCmd.Close acReport, "MeinBericht", acSaveNo
    > Appilcation.Echo True
     
    Naa, passt schon.
    Das Echo True solltest du auf jeden Fall auch noch in eine
    Fehlerbehandlung einbinden. Sonst friert die Anwendung ein,
    wenn etwas mit dem Bericht schief geht.
     
    --
    Servus
    Karl
    *********
     
     
     
    Donnerstag, 19. Juli 2012 19:48