Goedenavond,
Ik doe weer een beroep op de kennis die op dit forum aanwezig is.
Het probleem wat ik nu heb is voor mij niet te verklaren (nou zegt dat niet zo veel
).
Ik kan op 2 manieren een PDF bestand maken. De eerste is vanuit een keuzelijst met invoervak op een onafhankelijk formulier. Nadat er een keuze is gemaakt kan ik o.a. kiezen voor een PDF maken. Hierbij wordt gekeken of de map (bijv. jaar) al bestaat en zoniet dan wordt er een map aangemaakt. Daarna wordt het PDF bestand in deze map geplaatst (naam is afhankelijk van de informatie uit de keuzelijst. Dit werkt allemaal prima en ik kan net zoveel PDFjes achter elkaar maken als ik wil.
Maar ik heb ook een ander doorlopend formulier met in de detailregel een printknop. Nou is het de bedoeling als ik op de printknop druk, dat er gekeken wordt of er al een PDF gemaakt is of niet. Als er al een PDF gemaakt is dan wordt de PDF geopend (nog steeds goed).
Als er echter geen PDF gemaakt is, dan moet er een PDF aangemaakt worden: dit gaat de eerste keer goed. Als ik daarna in het volgende record hetzelfde doe, dan gaat het fout: ik krijg dan foutmelding 2501.
Het is lastig om een voorbeeldje te posten (BE en FE dB en veel privacy gevoelige informatie. Als het niet anders kan, dan moet ik een nieuwe dB maken met alleen een paar tabellen, queries ed en deze posten.
Zou iemand mij kunnen helpen dit probleem op te lossen.
Alvast bedankt voor het meedenken.
Gr. Jan
Ik doe weer een beroep op de kennis die op dit forum aanwezig is.
Het probleem wat ik nu heb is voor mij niet te verklaren (nou zegt dat niet zo veel

Ik kan op 2 manieren een PDF bestand maken. De eerste is vanuit een keuzelijst met invoervak op een onafhankelijk formulier. Nadat er een keuze is gemaakt kan ik o.a. kiezen voor een PDF maken. Hierbij wordt gekeken of de map (bijv. jaar) al bestaat en zoniet dan wordt er een map aangemaakt. Daarna wordt het PDF bestand in deze map geplaatst (naam is afhankelijk van de informatie uit de keuzelijst. Dit werkt allemaal prima en ik kan net zoveel PDFjes achter elkaar maken als ik wil.
Maar ik heb ook een ander doorlopend formulier met in de detailregel een printknop. Nou is het de bedoeling als ik op de printknop druk, dat er gekeken wordt of er al een PDF gemaakt is of niet. Als er al een PDF gemaakt is dan wordt de PDF geopend (nog steeds goed).
Als er echter geen PDF gemaakt is, dan moet er een PDF aangemaakt worden: dit gaat de eerste keer goed. Als ik daarna in het volgende record hetzelfde doe, dan gaat het fout: ik krijg dan foutmelding 2501.
Het is lastig om een voorbeeldje te posten (BE en FE dB en veel privacy gevoelige informatie. Als het niet anders kan, dan moet ik een nieuwe dB maken met alleen een paar tabellen, queries ed en deze posten.
Zou iemand mij kunnen helpen dit probleem op te lossen.
Code:
Private Sub cmd_PDF_Click()
On Error GoTo cmd_PDF_Click_Error
DoCmd.Close acForm, "frm_printen"
If IsNull(Me.ID_Factuur) Then
Exit Sub
ElseIf Not IsNull(Me.ID_Factuur) And IsNull(Me.Factuurdatum) Then
Call MsgBox("Deze factuur is nog niet geprint." _
& vbCrLf & "" _
& vbCrLf & "(De factuurdatum is daarom nog niet ingevuld!)" _
& vbCrLf & "" _
& vbCrLf & "Na het printen kun je hier wel de PDF maken/bekijken." _
, vbExclamation, Application.Name)
DoCmd.OpenForm "frm_printen", acNormal
DoCmd.Close acForm, Me.Name
Me.Recalc
Exit Sub
ElseIf Me.Klant_Naam Like "*" & Chr(47) & "*" Then
Select Case MsgBox("Je hebt een / in de naam staan!" _
& vbCrLf & "" _
& vbCrLf & "Dit mag niet." _
& vbCrLf & "" _
& vbCrLf & "Wil je de naam veranderen?" _
, vbYesNo Or vbExclamation Or vbDefaultButton1, Application.Name)
Case vbYes
DoCmd.OpenForm "frm_klant", acNormal ', , "[ID_klant] = " & Me.ID_klant
DoCmd.Close acForm, "frm_PDF_overzicht"
Case vbNo
Exit Sub
End Select
ElseIf Not IsNull(Me.ID_Factuur) And IsNull(Me.PDF_pad) Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tbl_factuur SET tbl_factuur.PDF_pad = Null " _
& "WHERE (((tbl_factuur.ID_factuur)=[Formulieren]![frm_PDF_overzicht]![ID_factuur]));"
DoCmd.SetWarnings False
Me.Refresh
Me.Repaint
sMap = CurrentProject.Path & "\" & Year(Me.Factuurdatum)
If Dir(sMap, vbDirectory) = "" Then MkDir sMap
sMap = sMap & "\" & [Forms]![frm_PDF_overzicht]![Factuurnummer] & " - " & [Forms]![frm_PDF_overzicht]![Klant_Naam] & ".pdf"
Me.PDF_pad = sMap
If Len(Dir(sMap, vbDirectory)) > 0 Then
Kill sMap
End If
DoCmd.OutputTo acOutputReport, "rpt_factuur_PDF_overzicht", acFormatPDF, sMap
Me.Refresh
If DCount("*", "qry_geen_PDF") = 0 Then
Me.kzl_geen_PDF.Enabled = False
Else
Me.kzl_geen_PDF.Enabled = True
End If
Else
Application.FollowHyperlink Me.PDF_pad, , True
End If
On Error GoTo 0
Exit Sub
cmd_PDF_Click_Error:
Select Case Err.Number
Case 490
Call CloseAllReports
Call MsgBox("Deze link is niet goed!" _
& vbCrLf & "" _
& vbCrLf & "Ik maak wel weer een nieuwe." _
, vbExclamation, Application.Name)
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tbl_factuur SET tbl_factuur.PDF_pad = Null " _
& "WHERE (((tbl_factuur.ID_factuur)=[Formulieren]![frm_PDF_overzicht]![ID_factuur]));"
DoCmd.SetWarnings False
Me.Refresh
Me.Recalc
sMap = CurrentProject.Path & "\" & Year(Me.Factuurdatum)
If Dir(sMap, vbDirectory) = "" Then MkDir sMap
sMap = sMap & "\" & [Forms]![frm_PDF_overzicht]![Factuurnummer] & " - " & [Forms]![frm_PDF_overzicht]![Klant_Naam] & ".pdf"
Me.PDF_pad = sMap
If Len(Dir(sMap, vbDirectory)) > 0 Then
Kill sMap
End If
DoCmd.OutputTo acOutputReport, "rpt_factuur_PDF_overzicht", acFormatPDF, sMap
Me.Refresh
If DCount("*", "qry_geen_PDF") = 0 Then
Me.kzl_geen_PDF.Enabled = False
Else
Me.kzl_geen_PDF.Enabled = True
End If
End Select
' MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure cmd_PDF_Click of VBA Document Form_frm_PDF_overzicht"
End Sub
Alvast bedankt voor het meedenken.
Gr. Jan