Via een macro een rapport direct in een gewenste map plaatsen

Status
Niet open voor verdere reacties.

mariasteen

Gebruiker
Lid geworden
8 okt 2009
Berichten
23
Ik heb een macro gemaakt waar ik rapporten in modus "afdrukvoorbeeld" op het scherm krijg.

Graag zou ik deze automatisch in pdf in een map op ons netwerk geplaatst zien.
Nu voer ik die handelingen elke maandag zelf uit.

Hoe automatiseer ik dat?
 
Kijk eens in dit draadje; is een vergelijkbare vraag.
 
Prima! Kom je er niet uit, dan pakken we de draad hier weer op...
 
Het draadje heeft deels mijn vraag beantwoord. Een collega heeft mij echter verder geholpen met het volgende. Het is nu opgelost.

Stap 1 maak een macro1, deze bevat de volgende regel:
(Actie) (Argument)
ProcedureUitvoeren PrintnaarPDF ("adres")

Maar een vba module Module1 met de volgende code:

Option Compare Database
Option Explicit

Function PrintnaarPDF(SrcFile As String)
On Error GoTo PrintToPDF_Err

Dim DestPath As String 'DestPath = doel path for PDF file
Dim DestFile As String 'DestFile = doel file name for PDF file

'Saves the file to the desktop of the current user
DestPath = "C:\Documents\" ' & Environ("USERNAME") & "\Desktop\"
'Formats the file name like this: "YYYY-MM-DD-ReportNameHere.pdf"
DestFile = DestPath & Year(Now) & "-" & Month(Now) & "-" & Day(Now) & "-" & SrcFile


DoCmd.OpenReport SrcFile, acViewPreview, , ""
DoCmd.OutputTo acOutputReport, "", acFormatPDF, DestFile + ".pdf", False, "", 0, acExportQualityPrint
DoCmd.Close

PrintToPDF_Exit:
Exit Function

PrintToPDF_Err:
MsgBox Error$
Resume PrintToPDF_Exit

End Function
 
Met jouw Dest code krijg je niet de juiste opmaak, omdat je bij Month(Now) maar één cijfer krijgt bij de eerste 9 maanden. En dat geldt ook voor de code Day(Now). Bovendien kan het een stuk korter:
Code:
DestFile = DestPath & Format(Now, "yyyy-mm-dd") & SrcFile
 
Dank!
Ik heb de code toegepast. Idd korter en overzichtelijker.

Is er dan een (snelle) manier om om 6 oktober 2010 ook op 2010-10-06 te krijgen?
Want nu is het nog steeds bij mij 2010-10-6
 
Is er dan een (snelle) manier om om 6 oktober 2010 ook op 2010-10-06 te krijgen?Want nu is het nog steeds bij mij 2010-10-6

Als je de code van OctaFish gebruikt krijgt het dagnummer netjes een voorloopnul als het dagnummer eencijferig is.
Code wel goed toegepast?

Tardis
 
Lijkt mij ook dat-ie moet werken. Probeer anders deze variant eens:
Code:
DestFile = DestPath & Format(Date, "yyyymmdd") & SrcFile
Ik zou sowieso Date gebruiken i.p.v. Now, aangezien de datum op een dag doorgaans niet verandert ;)
 
Ik schaam me diep.... Verkeerde regel uitgestert.
Het werkt super!
Hartelijk dank voor jullie hulp.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan