Hoe druk ik in Access een pdf-bestand

Status
Niet open voor verdere reacties.
Code:
Sub Spoolen()
On Error GoTo errsp
  If MsgBox("Met spooling kun je facturen, betalingsherinneringen en rekening-courant-overzichten afdrukken." & vbNewLine & "Wil je dit?", 4, "Spooling") = 6 Then
  GstrPad = Contact("Haal", "mmo", "SELECT * FROM H_Pointers WHERE id=1") & "\" & Format(Date, "yy-mm-dd-")
  Dim fDialog As Office.FileDialog
  Dim varFile As Variant
  Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
  With fDialog
  .AllowMultiSelect = True
  .Filters.Clear
  .Filters.Add "Selecteer de te printen bestanden of [Ctrl] + [A] voor alles", "*.pdf"
  .InitialFileName = GstrPad
  If .Show = True Then
        For Each varFile In .SelectedItems

aa:
            If InStr(varFile, "\") > 0 Then Mid(varFile, InStr(varFile, "\"), 1) = "/": GoTo aa
           CreateObject("Shell.Application").NameSpace(0).ParseName(varFile).InvokeVerb ("Print")
           Kill varFile
  Next
  Else
  MsgBox "Je hebt geen bestand gekozen"
  End If
  End With
  End If
Exit Sub
errsp:
MsgBox Error$
End Sub
Ziehier de gehele code.
 
Dan zit het dus in de waarde van varFile. Je lijkt alle \ (goed) te vervangen door / (fout). Waarom? En waarom zo? De Replace functie werkt stukken makkelijker.
 
Dan zit het dus in de waarde van varFile. Je lijkt alle \ (goed) te vervangen door / (fout). Waarom? En waarom zo? De Replace functie werkt stukken makkelijker.

Op advies van Octafish #12
Intussen ook weer getest zonder deze aanpassing.Werkt ook niet. Er gebeurt niets met dat commando, het gaat verder met de kill functie
 
Laatst bewerkt:
En wat is de waarde van varFile volgens de MsgBox?
 
Dubbelklik in de verkenner op een PDF bestand, met welke applicatie wordt bij jou dat bestand geopend?
 
Ik heb nergens gezegd dat je goede (“\”) quotes moet vervangen door verkeerde (“/“).
Code:
aa:
[COLOR=#000000]     If InStr(varFile, "\") > 0 Then Mid(varFile, InStr(varFile, "\"), 1) = "/": [/COLOR]
[COLOR=#000000]GoTo aa[/COLOR]

Wordt dan:
Code:
          Replace(varFile, "\", "/")

Maar goed, ik doe pas wat weer aan hulp als we het ‘probleem’ bij de basis hebben aangepakt: waarom oh waarom MOET JE ZONODIG PDF BESTANDEN AFDRUKKEN? Druk de rapporten af, en stuur de pdf bestanden op. Of wat je dan ook met die pdfjes wilt doen. Weggooien? DRUK ZE NIET AF!!!!.

Zou me ook niets verbazen als ze al zijn weggegooid voordat ze bij de printer zijn. Zelf zou ik ze pas weggooien na de loop met het afdrukken. Dan weet je zeker dat het afdrukken goed gaat.
 
Een andede benadering:
Hier zie je de bestanden die het resultaat van de fakturering zijn
Schermopname (27).png
Als ik nu klik op een bestand is dit het resultaat:
Schermopname (28).png
Windows haalt automatisch het benodigde programma en toont het pdf op de juiste manier. Maar welk programma is/doet dat? Dat moet via een SHELL toch ook in Access kunnen, aangevuld met een instructie van afdrukkun?
Bart
 
Je PDF bestanden worden geopend met je browser, Mozilla Firefox.
Die laat alle \ zien als /, maar dat wil niet zeggen dat je in je code de backslash ook moet vervangen door een forward slash. Het replace commando is dan ook niet nodig.
Code:
CreateObject("Shell.Application").NameSpace(0).ParseName(varfile).InvokeVerb ("Print")
werkt met Acrobat Reader prima, of het met Firefox ook werkt is mij niet bekend.
In Microsoft Edge en Vivaldi werkt het niet, ik neem aan dat het specifiek voor Acrobat Reader bedoeld is.

Als je Adobe Reader hebt geïnstalleerd kun je het ook zo doen:
Code:
Sub PrintPDF(strPDFFileName As String)
    Dim sAdobeReader As String 'This is the full path to the Adobe Reader or Acrobat application on your computer
    sAdobeReader = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe"
    RetVal = Shell(sAdobeReader & " /P " & Chr(34) & strPDFFileName & Chr(34), 0)
End Sub
 
Laatst bewerkt:
Natuurlijk mag je de oplossing overal zoeken. Maar het is wel zo netjes dat even te vermelden. Als je dat niet doet kunnen mensen op het ene forum moeite gaan doen om een antwoord te vinden, terwijl dat misschien op het andere al is gegeven. Zoals in dit geval waarin hier gezegd is dat Firefox je standaard pdf-programma is (wat overigens al lang duidelijk was, maar dit terzijde). Je bent daar bovendien eerder op gewezen (#10 en #11). Dus: koppig.

Verder is er alle reden je koppig te noemen omdat je volhardt in een werkwijze die waarschijnlijk nodeloos omslachtig is, maar vragen daarover consequent uit de weg gaat.
 
Laatst bewerkt:
NOGMAALS BART (ik doe het maar in hoofdletters, dan lees je het wellicht), RAPPORTEN ZIJN ER OM AF TE DRUKKEN. EXPORTS VAN RAPPORTEN IN PDF FORMAAT GEBRUIK JE OM NAAR DE KLANTEN OP TE STUREN, ZODAT ZE DIE ZELF AF KUNNEN DRUKKEN. ALS JE PAPIEREN FACTUREN NODIG HEBT OM OP TE STUREN, DAN DRUK JE DIE AF VANUIT HET RAPPORT, EN DAN PAK JE EEN ENVELOPJE EN GA JE POSTZEGELS PLAKKEN. HET IS VOLSLAGEN ONZIN (we moeten het maar wat harder zeggen) OM RAPPORTEN EERST TE EXPORTEREN NAAR PDF, DAN AF TE DRUKKEN EN VERVOLGENS DIE PDF TE VERWIJDEREN. WAAROM IN GODSNAAM OP DEZE MANIER?

Waarom? ALLE adviezen van jullie -ook de laatste- werken niet.
Onzin; ik heb het getest vanuit Boeket en het werkt prima. Nee, ik heb de pdf-jes daarbij niet verwijderd nadat ik eerst de printopdracht had gegeven. Zoals ik in bericht #26 (op naar de 100?) al heb geschreven, zou het best wel eens kunnen dat de twee opdrachten (afdrukken en Kill) te vlot achter elkaar worden uitgevoerd, zodat er geen bestand meer is om af te drukken.

Het gaat hier om een onderdeel van een standaardpakket waarbij ik van de gebruiker niet mag verwachten dat ze extra programma's installeren.
Nogmaals: dat hoeft helemaal niet. In je pakket zitten rapporten, en elke gebruiker met een printer kan die zelf afdrukken. Sterker nog: jij hebt geen enkele invloed op de printerkeuze van die gebruiker, dus als jij voorgekauwde printopdrachten gaat inbouwen, loop je de kans dat je het systeem van die gebruiker alleen maar in de soep laat draaien. Laat de gebruiker zelf bepalen of hij/zij pdf-jes wil maken (dat kan je namelijk wél vanuit je database regelen, omdat Office Acrobat ondersteuning heeft ingebouwd). En willen ze afdrukken? Prima, ze kunnen heus zelf wel een printopdracht geven.

Ik weet niet of je dit soort flauwekul in Boeket in wilt bouwen, maar het eerste wat ik ga doen als ik het beheer overneem, is om dit er gelijk weer uit te slopen. Ik kan mij hier echt niet in vinden.
 
Ïk ben daar al vanaf gestapt. Het idee kwam bij op om de volgende reden: De gebruiker de gelegenheid te geven af te zien van het afdrukken/emailen van bijvoorbeeld een betalingsherinnering
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan