Hallo,
folgender VBA-Code ermöglicht das Drucken in S/W.
Private Sub PrintReportSW(sReportName As String)
Dim rpt As Report
Application.Printer = Application.Printers(0)
DoCmd.OpenReport sReportName, acViewPreview, , , acHidden
Set rpt = Reports(sReportName)
rpt.Printer.ColorMode = acPRCMMonochrome
DoCmd.OpenReport sReportName, acViewNormal
DoCmd.Close acReport, sReportName, acSaveNo
Set Application.Printer = Nothing
End Sub
Ist das Drucken in S/W auch ohne den Befehl möglich?
"DoCmd.OpenReport sReportName, acViewPreview, , , acHidden"
Denn bisher habe ich S/W nicht festgelegt und acViewPreview wird auch nicht ausgeführt.
Funktionert wunderbar - druckt ohne dass der Bericht geöffnet wird.
Jedoch soll der Bericht in S/W gedruckt werden. In Access kann ich das sonst nicht einstellen und die Standarddruckeinstellungen in Windows sind auf S/W gestellt - jedoch druckt Access bisher immer in Farbe.
danke
gruß Christoph
Hallo Christoph,
probier mal, ob Du Dein Ziel erreichst, wenn Du im Report beim Ereignis "Beim Öffnen" den Befehl
Me.Printer.ColorMode = acPRCMMonochrome
einträgst.
Aufruf dann wie von Dir beschrieben mit ... acNormal.
Harald
hi,
wo muss ich dass dann hier eibauen?
DoCmd.OpenReport "PMDB-Auszug_ST", acViewNormal, , "IDoWAG ='" & IDoWAG.Value & "'"
danke
Christoph
Zitat von: cyberchris am August 04, 2010, 12:13:27
hi,
wo muss ich dass dann hier eibauen?
DoCmd.OpenReport "PMDB-Auszug_ST", acViewNormal, , "IDoWAG ='" & IDoWAG.Value & "'"
Hi Christoph,
nicht in dieser Zeile, sondern im Report/Bericht. Dort die Eigenschaften öffnen und im Reiter "Ereignis" bei "Beim Öffnen" in VBA das folgende eintragen:
Me.Printer.ColorMode = acPRCMMonochrome
Dann ist das bei diesem Bericht hinterlegt. Denkbar ist auch, in einer erweiterten Version eine Variable zu übergeben (z.B. Me.OpenArgs oder mit einer global deklarierten) und damit in einer if-Anweisung zu steuern, ob farbig oder schwarz/weiß.
Harald
Funktioniert leider nicht.
Option Compare Database
Private Sub Report_Open(Cancel As Integer)
Me.Printer.ColorMode = acPRCMMonochrome
End Sub
Hallo Christoph,
stimmt, im Bericht funktionierte das Umschalten nicht.
Mit den folgenden Zeilen, die vor dem Berichtsaufruf stehen, funktionierte bei mir das Umschalten:
Dim ReportName As String
ReportName = "Der Name Deines Berichts"
DoCmd.OpenReport ReportName, acViewDesign
' Reports(ReportName).Printer.ColorMode = acPRCMColor
Reports(ReportName).Printer.ColorMode = acPRCMMonochrome
DoCmd.RunCommand acCmdSave
DoCmd.Close acReport, ReportName, acSaveYes
Mit der Zeile "DoCmd.OpenReport ReportName, acViewDesign , , , acHidden" funktionerte das Umschalten nicht.
Geholfen hatte mir: http://www.utteraccess.com/forum/Modify-report-properties-t1852331.html
Harald
Kann man vielleicht was z.b. im Detailbereich des Berichts beim Ereignis "Beim Drucken" was machen?
danke
Zitat von: cyberchris am August 06, 2010, 06:59:48
Kann man vielleicht was z.b. im Detailbereich des Berichts beim Ereignis "Beim Drucken" was machen?
danke
Moin Christoph
1. Definiere "
was" {Irgend et
was kann man bestimmt im Detailbereich machen ;D}
2. Haben die obigen Zeilen nun das gewünschte Ergebnis gebracht?
Harald
Hallo,
ich möchte eben ohne acView den Bericht drucken, da der Bericht nicht aufpoppen soll.
Und das hat leider nicht funktioniert.
Auch habe ich dann noch versucht bei den Ereignissen des Berichts "Beim Drucken" das einzufügen.
Me.Printer.ColorMode = acPRCMMonochrome
Hat leider auch nicht funktioniert - er hat dann garnichts gedruckt.
Meine Frage ist, ob ich das Ereignis mit einem Code befüllen kann, dass ich in S/W drucken kann ohne acView.
danke
gruß Christoph
Hi Christoph
siehe obiger Link:
"Good work, Craig!
I never found any way for such actions without opening the object, except for Querydefs of which you can just alter the SQL property.
I like working with the object reference, it gives a handle on the Controls-collection. I used such to manipulate a selection of reports in a larger database, that had either an Image-control or a PictureBox containing a person's signature, and a textbox with the guy's name. Text and signature needed replacement, and the target controls could have different names on each report. It worked very swell by using arrays with candidate control names that my code could choose from.
Leaning back then to watch every report open, change and close is so much fun.
Daan o! "
Dann muß ich passen, aber vielleicht wissen die Gurus noch eine Möglichkeit (mal abgesehen davon, dass Du zwei nahezu identische Berichte hast: einer in SW, der andere in Farbe}
Harald
Vielen Dank trotzdem für deine Hilfe.
Es geht nur darum, dass unsere Drucker geleast sind und Farbdrucke separat berechnet werden - egal was gedruckt wird.
gruß