VBA Map link

Status
Niet open voor verdere reacties.

BeastLife

Gebruiker
Lid geworden
28 mei 2018
Berichten
48
Weet iemand hoe ik een map van 2019 automatisch aanmaken en rapportage opslaan in C schrijf?
Als de map van 2019 bestaat dan hoeft geen nieuwe map aangemaakt te worden.

Zie VBA script:

Code:
Private Sub PDFKnop_Click()
Dim YearMap As String
Dim Filename As String
Dim FilePath As String

JaarMap = Year(Now())
Filename = Me.Achternaam & ", " & Me.Initialen
FilePath = "C:\Rapportage\ "& Yearmap &" \ " & Filename & ".pdf"
DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
DoCmd.OpenForm "Bericht: Rapport met hyperlink"
End Sub

Ik kreeg foutmelding van VBA, weet iemand hoe dit oplossing? ik kan hier nergens vinden.
 
Laatst bewerkt door een moderator:
Als je zegt een foutmelding te krijgen, vertel deze er dan ook bij.
 
Ik kreeg dit melden:
"Fout 2501 tijdens uitvoering: De actie OutputTo is geaunneleerd."
Foutopsporing: DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
er komt door FilePath is onjuist adres. Het heeft meemaken met Yearmap. zonder Yearmap werkt uitstekend.
 
Als die map niet bestaat zal het inderdaad niet lukken.
 
Aangepast in m'n vorige bericht.
 
Code:
Private Sub PDFKnop_Click()
Dim Filename As String
Dim FilePath As String
Dim YearMap As String

YearMap = Year(Now())
Filename = Me.Achternaam & ", " & Me.Initialen & "
FilePath = "C:\Rapportage\" & JaarMap & "\" & Filename & ".pdf"

If Len(Dir("C:\Rapportage" & YearMap & "", vbDirectory)) = 0 Then
   MkDir "C:\Rapportage\" & YearMap & ""
   DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
   DoCmd.OpenForm "Bericht: Rapport met hyperlink"
     Else
        DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
        DoCmd.OpenForm "Bericht: Rapport met hyperlink"
    End If
End Sub

Dit is antwoord en werkt goed!
Top bedankt.
 
Kan nog wel wat korter.
Code:
Private Sub PDFKnop_Click()
Dim FilePath As String

   FilePath = "C:\Rapportage\" & Year(Date) & "\" & Me.Achternaam & ", " & Me.Initialen & ".pdf"
   If Dir("C:\Rapportage\" & YearMap , vbDirectory)) = "" Then MkDir "C:\Rapportage\" & & Year(Date) & "\
   DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
   DoCmd.OpenForm "Bericht: Rapport met hyperlink"
End Sub
 
Alleen YearMap nog even vervangen door Year(Date).
 
Voor de zoutslikkers:
Code:
Private Sub PDFKnop_Click()
Dim FilePath As String

   FilePath = "C:\Rapportage" & Year(Date) & "" & Me.Achternaam & ", " & Me.Initialen & ".pdf"
   If Dir("C:\Rapportage" & Year(Date) , vbDirectory)) = "" Then MkDir "C:\Rapportage" & & Year(Date) & "\
   DoCmd.OutputTo acOutputReport, "Rapport", acFormatPDF, FilePath
   DoCmd.OpenForm "Bericht: Rapport met hyperlink"
End Sub
 
Code:
Private Sub PDFKnop_Click()
   c00 = "C:\Rapportage" & Year(Date) 
   If Dir(c00,16) = "" Then MkDir c00

   DoCmd.OutputTo 3, "Rapport", acFormatPDF, c00 & "\" & Achternaam & "_" & Initialen & ".pdf"
   DoCmd.OpenForm "Bericht: Rapport met hyperlink"
End Sub
 
@snb

c00,16? je VBA is nog korter dan andere. waar kan ik dit c00.16 etc leren? dit VBA script is wel interessant.
 
Laatst bewerkt door een moderator:
kan ik dit c00.16 etc leren? dit VBA script is wel interessant.
1. Snb declareert nooit variabelen, wat ik nooit aanbeveel
2. Snb gebruikt variabelen namen die niets zeggen, wat ik niet handig vind
3. Snb gebruikt zelden IntelliSense, wat het programmeren behoorlijk ingewikkeld maakt voor beginners.

Als je de codes vergelijkt, bestaan ze allebei uit 4 regels code, waarbij ik dus nog een variabele declareer. Maar die van mij is voor elke beginnende programmeur leesbaar, en dat betwijfel ik bij de code van snb. En hij werkt ook niet sneller :).
 
Ik declareer wanneer nodig in verband met de scope van de variabele.
Ik werk wel sneller ;)
, want Intellisense (en meer) zit tussen de oren.
Ik heb klassieke voorgangers, bijv. Pythagoras: a2+b2=c2.
Wat ben ik blij, dat ie dat niet in het grieks uitschreef. De code wordt daarmee een stuk universeler. Interferentie met in VBA gereserveerde termen een stuk kleiner.
 
Laatst bewerkt:
Ik werk wel sneller ;)
Omdat je weet wat je doet :). Maar ik blijf erbij dat dat voor beginners geen handige zet is. Ik weet ook wel dat een Maserati veel sneller op de 200 zit dan mijn cliootje (wind mee, heuvel af, tijger in de tank) maar ik leer autorijden toch liever in een Clio :). Lijkt me voor de overige weggebruikers ook een veel beter idee :D.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan