collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 53
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 1
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13993
  • stats Beiträge insgesamt: 66748
  • stats Themen insgesamt: 9000
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: mehrere geöffnete Berichte drucken  (Gelesen 2152 mal)

Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
mehrere geöffnete Berichte drucken
« am: Februar 05, 2018, 00:17:52 »
Hallo zusammen. Ich habe zwei Berichte
Private Sub Print_All_Click()

If Me.Kategorie = "LKW" Then
    DoCmd.OpenReport "BerichtChecklisteLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
    DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   
      DoCmd.RunCommand acCmdPrint

    DoCmd.Close acReport, "BerichtChecklisteLKW", acSaveYes
    DoCmd.Close acReport, "BerichtChecklisteBestueckung", acSaveYes
End If

End Sub
,die Berichte öffnen sich auch aber es wird nur der letzte gedruckt und schließen beide ( auch wenn ich die Reihenfolge ändere, immer der zweite Bericht wird gedruckt.
Kann mir einer helfen und mir den Fehler sagen. Habe überall gesucht aber keine Lösung gefunden. In beiden Berichten sind Daten enthalten.
Ja es wird nur der im Fokus stehende Bericht gedruckt. Wenn ich nach jedem geöffnetem Bericht der Druckbefehl gebe werde ich immer aufgefordert den Drucker auszuwählen.If Me.Kategorie = "LKW" Then
    DoCmd.OpenReport "BerichtChecklisteLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"

      DoCmd.RunCommand acCmdPrint

    DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   
    DoCmd.RunCommand acCmdPrint

    DoCmd.Close acReport, "BerichtChecklisteLKW", acSaveYes
    DoCmd.Close acReport, "BerichtChecklisteBestueckung", acSaveYes
End If
Ich könnte die Berichte Kopieren und beim öffnen den Befehl zum Drucken und schließen geben aber das ist nur Doppelte Belegung und bestimmt auch Quatsch  ;D
Da am Ende mehrere Berichte gedruckt werden ist das nicht der Sinn.
Würde mich um eine Antwort freuen.

Gruß Udo
Mfg. Udo
 

Offline bahasu

  • Moderator
  • Access Guru
  • *****
  • Beiträge: 1889
Re: mehrere geöffnete Berichte drucken
« Antwort #1 am: Februar 05, 2018, 05:22:02 »
Hi Udo,

Du kannst einen sofortigen Druck mit einem anderen AcView-Parameter erreichen:
    acViewNormal 'Standard  Druckt den Bericht sofort. {gilt für access2003, daher ggf. anpassen}

Harald
Servus
 
Folgende Mitglieder bedankten sich: Icemann1970

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7311
Re: mehrere geöffnete Berichte drucken
« Antwort #2 am: Februar 05, 2018, 09:56:18 »
Hallo,
oder den Parameter acViewReport einfach weglassen.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Icemann1970

Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #3 am: Februar 05, 2018, 22:50:47 »
Hallo zusammen.
Also ich habe das schon getestet aber bei acViewNormal sowohl beim weglassen der acView...   kommt ein Fenster "Druckerausgabe speichern unter" also als Datei speichern. Die Druckerauswahl kommt nur bei acViewReport. 
Mfg. Udo
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23363
Re: mehrere geöffnete Berichte drucken
« Antwort #4 am: Februar 05, 2018, 23:38:01 »
Hallo,

zeig mal die komplette Prozedur, wie sie aktuell aussieht...

Solches sollte genügen:

Private Sub Print_All_Click()

If Me!Kategorie = "LKW" Then
    DoCmd.OpenReport "BerichtChecklisteLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
    DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
End If

End Sub

Prüfe zudem, ob die Druckereinstellung ( Seiteneinrichtung/Seite) der Berichte auf "Standarddrucker"  eingestellt ist und ob der Windows-Standarddrucker dem gewünschten entspricht.


Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #5 am: Februar 06, 2018, 16:33:54 »
Hallo Franz.
Option Compare Database
Option Explicit

Private Sub Print_All_Click()

If Me.Kategorie = "LKW" Then
    DoCmd.OpenReport "BerichtChecklisteLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
    DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", acViewReport, , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   
      DoCmd.RunCommand acCmdPrint

    DoCmd.Close acReport, "BerichtChecklisteLKW", acSaveYes
    DoCmd.Close acReport, "BerichtChecklisteBestueckung", acSaveYes
End If

End Sub
Wie gesagt, wenn ich die acView.... weglasse oder  acViewNormal eintrage, öffnet sich ein Fenster mit der Frage, wo die Datei gespeichert werden soll. Da die DB auf einem Server liegt und alle einen Zugriff darüber erhalten, muss jeder Anwender seinen eigenen Drucker (der Abteilung) auswählen können. Nacheinander Manuell funktioniert das ja auch, nur nicht in meinem Code, da werde ich nur nach dem letzt geöffnetem "Fokussiertem" Bericht gefragt, er druckt das letzte aus und schließt beide. ( zum Test hier nur zwei Berichte, werden wenn alles so läuft bis zu 10 Berichte werden)
Mfg. Udo
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7311
Re: mehrere geöffnete Berichte drucken
« Antwort #6 am: Februar 06, 2018, 16:57:31 »
Hallo,
hat jeder User sein eigenes Frontend ?
Dann kann doch jeder User seinen Drucker fest als Standarddrucker eingeben, dann sollte auch der Bericht ohne weiteres über seinen Drucker gedruckt werden können.

Für einen sicheren Mehrbenutzerbetrieb wäre es erforderlich, dass jeder User sein eigenes Frontend hat.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: Icemann1970

Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #7 am: Februar 06, 2018, 21:50:34 »
Vielen Dank an Euch.
Ja, jeder User hat eine FE. Habe den Standarddrucker festgelegt, acViewReport und DoCmd.RunCommand acCmdPrint rausgeschmissen und alles war gut.

Daumen hoch
Mfg. Udo
 

Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #8 am: Februar 10, 2018, 14:13:22 »
Da bin ich wieder mal.
Das mit dem Standartdrucker festlegen war eigentlich eine gute Idee... aber das Problem ist, wenn ich den Standarddrucker festlege werden alle berichte an einem Drucker ausgedruckt. Ich würde gerne eine Abfrage bekommen welchen Drucker ich benutzen möchte. Die Abfrage habe ich durch den Code (http://www.donkarl.com?FAQ5.1)  hinbekommen (Zeigt alle verfügbaren Drucker an) aber die ausgewählte Funktion wird ignoriert.
habe es so eingesetzt:
Beim öffnen des Formular Dim prtloop As Printer
Me!Printers.RowSource = ""
For Each prtloop In Application.Printers
Me!Printers.AddItem prtloop.DeviceName
Next prtloop
um das Kombifeld zu füllen. Wähle einen Drucker aus und dann....

Option Compare Database
Option Explicit

Private Sub Print_All_Click()

If Me.Kategorie = "LKW" Then

    DoCmd.OpenReport "BerichtChecklisteLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
    DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"

    DoCmd.Close acReport, "BerichtChecklisteLKW", acSaveYes
    DoCmd.Close acReport, "BerichtChecklisteBestueckung", acSaveYes
End If

End Sub

das habe ich auch versucht
Private Sub Print_All_Click()

If Me.Kategorie = "LKW" Then

   DoCmd.OpenReport "BerichtChecklisteLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   Reports!BerichtChecklisteLKW.Printer = Application.Printers([Printer])

   DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", , , "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   Reports!BerichtChecklisteBestueckungLKW.Printer = Application.Printers([Printer])


    DoCmd.Close acReport, "BerichtChecklisteLKW", acSaveYes
    DoCmd.Close acReport, "BerichtChecklisteBestueckung", acSaveYes
End If

End Sub
kann mir einer von euch weiterhelfen ?

 
Mfg. Udo
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23363
Re: mehrere geöffnete Berichte drucken
« Antwort #9 am: Februar 10, 2018, 14:24:06 »
Hallo,

öffne  den jeweiligen Report als "versteckt" (acHidden).
setze die Printer-Eigenschaft
drucke den Bericht mit Docmd.Printout
schließe den Bericht (ohne saveas)


Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #10 am: Februar 10, 2018, 16:52:20 »
Hallo Franz. Ich bekomme das nicht hin. Wenn ich dich richtig verstanden habe sollte es so aussehen. Kombifeld nach Auswahl des Druckers "After Update"
Option Compare Database
Option Explicit

Private Sub Printers_AfterUpdate()

If Me.Kategorie = "LKW" Then

   DoCmd.OpenReport "BerichtChecklisteLKW", , , , acHidden, "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   Reports!BerichtChecklisteLKW.Printer = Application.Printers([Printers])  '<---- Ist dass so richtig?
   DoCmd.PrintOut

   DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", , , ,acHidden, "[GeräteNummer] = '" & Me![GeräteNummer] & "'"
   Reports!BerichtChecklisteBestueckungLKW.Printer = Application.Printers([Printers])
   DoCmd.PrintOut

   DoCmd.Close acReport, "BerichtChecklisteLKW"
   DoCmd.Close acReport, "BerichtChecklisteBestueckung"
End If

End Sub
Mfg. Udo
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23363
Re: mehrere geöffnete Berichte drucken
« Antwort #11 am: Februar 11, 2018, 10:31:19 »
Hallo,

ändere zunächst den Kombifeldnamen in "cmbPrinter". Es muss ein gültiger Druckername in der ersten Spalte der Kombiliste stehen.
Benutz de acPreview-Parameter. AcHidden steht an falscher Stelle.
Setze  zusätzlich den Fokus auf den jeweiligen Bericht:

Private Sub cmbPrinter_AfterUpdate()

If Me.Kategorie = "LKW" Then

   DoCmd.OpenReport "BerichtChecklisteLKW", acPreview,  ,  "[GeräteNummer] = '" & Me![GeräteNummer] & "'", acHidden
   Reports!BerichtChecklisteLKW.Printer = Application.Printers(Me!cmbPrinter)
   Docmd.SelectObject acReport,  "BerichtChecklisteLKW"
   DoCmd.PrintOut
   DoCmd.Close acReport, "BerichtChecklisteLKW"

   DoCmd.OpenReport "BerichtChecklisteBestueckungLKW", acPreview,  , "[GeräteNummer] = '" & Me![GeräteNummer] & "'", acHidden
   Reports!BerichtChecklisteBestueckungLKW.Printer = Application.Printers(Me!cmbPrinter)
   Docmd.SelectObject acReport,  "BerichtChecklisteBestueckungLKW" 
   DoCmd.PrintOut
   DoCmd.Close acReport, "BerichtChecklisteBestueckungLKW"

End If

End Sub



Wenn es noch mehr Berichte gibt, die ausgedruckt werden sollen, könnte der Code in eine Public Sub oder - Function ausgelagert werden...

Online Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1810
Re: mehrere geöffnete Berichte drucken
« Antwort #12 am: Februar 11, 2018, 14:45:58 »
Zitat
AcHidden steht an falscher Stelle
Ich liebe benannte Parameter;)
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline Icemann1970

  • Access-Profi
  • **
  • Beiträge: 180
Re: mehrere geöffnete Berichte drucken
« Antwort #13 am: Februar 11, 2018, 17:02:03 »
Hallo Franz.
Läuft nicht bei mir ...... auch der Code nicht  ;D
Kommt keine Fehlermeldung und kein Druck. Habe den Code stück für Stück getestet.
Habe nach der Auswahl des verfügbaren Druckers durch"cmbPrinter", ein Button "Drucken" angelegt und dort den Code eingegeben.
Private Sub Drucken_Click()
If Me.Kategorie = "LKW" Then

DoCmd.OpenReport "BerichtChecklisteLKW", acPreview,  ,  "[GeräteNummer] = '" & Me![GeräteNummer] & "'", acHidden
Reports!BerichtChecklisteLKW.Printer = Application.Printers(Me!cmbPrinter)
Docmd.SelectObject acReport,  "BerichtChecklisteLKW"

bis da funktioniert er. Nun ist der Bericht nach dem ersten cmd (,acHidden) wieder durch den 3. Satzt cmd (SelectObject...)  wieder sichtbar und da bleibt er stehen, Kein Druck und kein schließen des Bericht.

 DoCmd.PrintOut
 DoCmd.Close acReport, "BerichtChecklisteLKW"

End If

End Sub

Bei Private Sub cmbPrinter_AfterUpdate()
hatte es auch nicht funktioniert, daher habe ich zur Sicherheit den Button "Drucken" angelegt.
Kann ich hinter Reports!BerichtChecklisteLKW.Printer = Application.Printers(Me!cmbPrinter) den ausgewählten Drucker zur Kontrolle irgendwie "Sichtbar" machen, durch z.b.: MsgBox oder so?
Mfg. Udo
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23363
Re: mehrere geöffnete Berichte drucken
« Antwort #14 am: Februar 11, 2018, 17:31:03 »
Hallo,

mit
Debug.Print Me!cmbPrinter

(MsgBox Me!cmbPrinter  geht natürlich auch)

kannst Du den ausgewählten Druckernamen, sofern die Namen in der ersten (0-ten) Spalte des Kombi-Listenteils stehen, im Direktfenster ausgeben.

Wie wird das Kombi denn gefüllt, d. h., wie lautet dessen Datensatzherkunft?

Welche Access-Version ist im Einsatz?