CutePDF blijft standaardprinter in Access

Status
Niet open voor verdere reacties.

kuwertie

Gebruiker
Lid geworden
1 nov 2010
Berichten
50
Hallo,

Ik heb een database waarmee ik in PDF kan printen met de volgende code:

Code:
Private Sub Opslaan_PDF_Click()
    'Zet pdf writer als default printer
    'CutePDF Writer is de naam van de printer waar we willenop afdrukken
    For Each objPrinter In Application.Printers
        If objPrinter.DeviceName = "CutePDF Writer" Then
        Set Application.Printer = objPrinter
        End If
    Next
On Error GoTo Err_rpt_tblBestellingen_Click
Dim stDocName As String

    stDocName = "rpt_tblBestellingen"
    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.OpenReport stDocName, , , , , "[BestellingID]=" & Me.BestellingID
    Exit Sub
    
    
Err_rpt_tblBestellingen_Click:
MsgBox Err.Description

Set Application.Printer = prtDefault
End Sub

Hier wordt cudePDF als printer gekozen en hoort daarna weer teruggezet te worden naar "reserve printer". Wanneer ik naar printer en faxapparaten kijk staat het netjes op printer "Magazijn Beneden". Dus met Word, excel of adobe kan ik gewoon printen met het printericoontje.
MAAR in access staat het nog steeds als standaardprinter ingesteld. Dus wanneer ik linksboven op het printericoontje klik, krijg ik weer een PDF venster te zien.
Ook krijg ik zo'n venster te zien wanneer ik met een opdrachtknop (printknop) wil printen in access.

Wanneer ik access opnieuw opstart staat het wel netjes op de standaardprinter. Maar zoiets hoort toch niet te gebeuren. Elke keer opnieuw opstarten is ook zo irritant.

Hoe kan ik dit oplossen? Waar ligt dit aan?

BVD
 

Bijlagen

  • printvenster.JPG
    printvenster.JPG
    24,9 KB · Weergaven: 46
Laatst bewerkt:
moet je dan niet nog een if else aan maken voor die aan geeft dat de standaard printer dus die printer "Magazijn Beneden" is?
zodat alle andere documenten op deze printer worden afgedrukt?
 
dat lijkt mij althans een logische beredenering, maar kan er misschien wel helemaal naast zitten. het is in ieer geval het proberen waard ;):thumb:
 
moet je dan niet nog een if else aan maken voor die aan geeft dat de standaard printer dus die printer "Magazijn Beneden" is?
zodat alle andere documenten op deze printer worden afgedrukt?

Ik heb daar ook aan gedacht. Maar ze gebruiken de database op 2 computers. De andere staat boven met een andere printer. Dus het moet gewoon terug te gaan naar de standaardprinter. Misschien zit er een fout in de code of hoor ik wat aan toe te voegen.
 
kuwertie,

Wat steld bij jou die prtdefault voor?

Je moet eerst de defaultprinter vastleggen in een variabele.
Dan je PDF printer instellen en printen.
Daarna de defaultprinter weer terugzetten (zie stukje code).

Code:
  Dim strPrinter As String
  'huidige defaultprinter ophalen
  strPrinter = Application.Printer.DeviceName
  'schakelen naar andere printer CutePDF Writer
  'printen
  'en terug naar de defaultprinter
  Set Application.Printer = Application.Printers(strPrinter)

Groeten, Paul
 
Ik ben zelf niet goed in VBA taal.
Op dit moment ben ik ook niet op werk. Maar zou je kunnen laten zien hoe de hele code moet zijn?:o
 
kuwertie,

Hier de code:

Code:
Private Sub Opslaan_PDF_Click()
  Dim strPrinter As String
  'huidige defaultprinter ophalen
  strPrinter = Application.Printer.DeviceName

  'Zet pdf writer als default printer
  'CutePDF Writer is de naam van de printer waar we op willen afdrukken
  Set Application.Printer = Application.Printers("CutePDF Writer")
  
  On Error GoTo Err_rpt_tblBestellingen_Click

  DoCmd.RunCommand acCmdSaveRecord
  DoCmd.OpenReport "rpt_tblBestellingen", , , , , "[BestellingID]=" & Me.BestellingID
  
  'en terug naar de defaultprinter
  Set Application.Printer = Application.Printers(strPrinter)
  Exit Sub
    
    
Err_rpt_tblBestellingen_Click:
  MsgBox Err.Description
  Set Application.Printer = Application.Printers(strPrinter)
End Sub

Groeten, Paul
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan