Access 2016. Email met pdf bijlage van een formulier met gegevens spefieke record.

Status
Niet open voor verdere reacties.
Ik ga er van uit dat je bedoelt om de opdracht ID op te nemen in het email onderwerp en/of de bestandsnaam van de bijlage Werkorder.
Ik zie in het bijschrift de naam Werkorder staan maar zou niet weten welke code ik er achter moet zetten. Wat bedoel je met exporteren van het rapport en moet ik na verzending van de email de bijschrift weer terug aanpassen. Dan heb ik toch weer de oorspronkelijke situatie en is er niets veranderd. Ik begrijp het niet. Ik zou graag beide hebben, in het onderwerp en de bestandsnaam.
 
Je zou het zo kunnen doen.

Code:
Dim rpt As String, sNaam As String
    rpt = "Rapport1"
    DoCmd.OpenReport rpt, acViewDesign, , , acHidden
    sNaam = Reports(rpt).Caption
    Reports(rpt).Caption = "Werkorder " & Me.Keuzelijst0
    DoCmd.Close acReport, rpt, acSaveYes
    
    DoCmd.OpenReport rpt, acViewPreview
    Reports(rpt).Caption = "Werkorder " & Me.Keuzelijst0
    DoCmd.SendObject acSendReport, rpt, acFormatPDF, , , , "Werkorder", "Wo ,"
    DoCmd.Close acReport, rpt
    
    DoCmd.OpenReport rpt, acViewDesign, , , acHidden
    Reports(rpt).Caption = sNaam
    DoCmd.Close acReport, rpt, acSaveYes

Exit_Naam_Click:
    MsgBox "De Werkorder is met succes verzonden."
    Exit Sub

ErrorHandler:
    Select Case Err.Number
        Case 2501
            MsgBox "Email-bericht is geannuleerd."
        Case Else
            MsgBox Err.Number & ": " & Err.Description
    End Select
 
Dank je wel. Ik heb momenteel een probleem. Mijn laptop heeft het begeven en moet nu access op een andere pc zien te krijgen. Ik ga het bestuderen en uitvoeren maar dat kan helaas even duren.
 
Beste Octafish. Doel: De pdf bestandsnaam in de email uitbreiden met een (variabel) werknummer (o_Opdracht ID). Ik heb access op een ander pc draaien en heb jouw code geprobeerd maar kom er niet uit. Ik begrijp uit je code dat je eerst de rapportnaam afvangt en opslaat, vervolgens (mogelijk) filtert en het werknummer afvangt en opslaat. Deze afgevangen gegevens gebruik je voor het te verzenden pdf bestand en brengt vervolgens het rapport weer in de oude toestand. Ik weet niet hoe ik jouw code moet integreren met mijn code. Ik zie in je voorbeeld geen filtering op o_Opdracht ID om de "current" object rapport te kunnen openen.
Als ik jouw code uitvoer c.q. compileer dan verschijnt de foutmelding Compileerfout: Kan de methode of het gegevenslid niet vinden, item Keuzelijst0 wordt geel gemerkt.
Hoe gaat de filtering plaatsvinden?
Hoe kan ik jouw code integreren met de mijne?
Wat doe ik met Keuzelijst0 die tweemaal voorkomt?
Is de naam Rapport1 correct, het moet toch niet Rport Werkorders zijn? Je bedoelt: "Het is een tijdelijk rapport".
Zou je svp. nog eens willen helpen, alvast bedankt.

Mijn code:

Code:
Private Sub Knop802_Click()
On Error GoTo ErrorHandler
  Me.Dirty = False
DoCmd.OpenReport "Rport Werkorders", acViewPreview, , "[o_Opdracht ID]= " & Me.[o_Opdracht ID]
DoCmd.SendObject acSendReport, "Rport Werkorders", acFormatPDF, , , , "Werkorder", " WO"
DoCmd.Close acReport, "Rport Werkorders", acSaveNo
Exit_Naam_Click:
MsgBox "De Werkorder is met succes verzonden."
Cleanup:
    Exit Sub
ErrorHandler:
  Select Case Err.Number
    Case 2501
      MsgBox "Email-bericht is geannuleerd."
      DoCmd.Close acReport, "Rport Werkorders", acSaveNo
    Case Else
      MsgBox Err.Number & ": " & Err.Description
  End Select
  Resume Cleanup

End Sub
 
Ik vermoed dat je mijn code niet helemaal begrijpt. Ik heb jouw db niet, dusmik moest zelf iets maken.meestal doemikmdat niet, vanwege de tijd, maar dit kon simpel. Alleen kloppen dan de elementnamen uiteraard niet, maar ik ging er vanuit dat je die vertaalslag wel zelf kan maken.
Vergelijk jouw filter maar met de mijne., dan is het simpel aan te passen. Wat jij níet doet, maar wat wel moet, is de het rapport aanpassen voordat je hem opent. Dat deel moet je er toch echt in verwerken. Alle elementen heb je...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan