Rapport in PDF mailen

Status
Niet open voor verdere reacties.

gangstalaz

Gebruiker
Lid geworden
13 sep 2010
Berichten
131
Hallo,

Ik werk met access 2003 en heb het volgende probleem.

Gelukkig werkt op dit moment werkt de database zoals ik het zou willen. Dus ik kan een bestelling plaatsen en per mail verzenden. De bestelling wordt dan in Snapshot verzonden. En dit laatste is een probleem voor de leveranciers. Zij willen het in PDF ontvangen.
Hoe kan ik het rapport in PDF versturen?

De opdrachtknop (verzenden en opslaan) werkt met de volgende code:

Code:
Private Sub Rapport_Verzenden_Click()
Dim strsql As String, strSQL_Rapport As String, sEmail As String
Dim sFilter As String, sTabel As String, BestelID As String
Dim x As Integer
BestelID = Me.BestellingID
strsql = "SELECT * FROM tblBestellingen " & vbCrLf
sFilter = " WHERE (BestellingID=" & BestelID & ");"
strsql = strsql & sFilter
sRapport = "rpt_tblBestellingen"
DoCmd.Echo False, "Bezig met openen van recordset."
With CurrentDb.OpenRecordset(strsql)
    'Records doorlopen, en rapport voor elk record instellen en mailen
    iAantal = .RecordCount
    If iAantal > 0 Then
        DoCmd.Echo False, "Rapport openen voor bestelling " & BestelID
        DoCmd.OpenReport sRapport, acViewDesign, , , acHidden
        sTabel = Reports(sRapport).RecordSource
        If InStr(1, UCase(sTabel), "WHERE") > 0 Then
            strSQL_Rapport = Left(sTabel, InStr(1, sTabel, "WHERE ") - 1)
        Else
            If InStr(1, UCase(sTabel), "SELECT") = 0 Then
                If InStr(1, sTabel, " ") > 0 And InStr(1, sTabel, "[") = 0 Then
                    sTabel = "[" & sTabel & "]"
                End If
                strSQL_Rapport = "SELECT * FROM " & sTabel & " "
            Else
                strSQL_Rapport = sTabel
            End If
        End If
        'Extra loopje, om de punt-komma's te verwijderen.
        Do Until Right(strSQL_Rapport, 1) <> ";"
         strSQL_Rapport = Left(strSQL_Rapport, Len(strSQL_Rapport) - 1)
        Loop
         
         'Klantfilter op rapport zetten
        strSQL_Rapport = strSQL_Rapport & sFilter
        ''tmp = InputBox("", "", strSQL)
        Reports(sRapport).RecordSource = strSQL_Rapport
        DoCmd.Echo False, "Rapport opslaan ...."
        DoCmd.Close acReport, sRapport, acSaveYes
        If Me.txtEmail = "" Then
            sEmail = InputBox("Wat is het emailadres?", "Email adres controleren", "mail@bedrijf.nl")
        Else
            sEmail = Me.txtEmail.Value
        End If
        DoCmd.SendObject acSendReport, sRapport, acFormatPDF, sEmail, , , "Bestelling", " ", False
        
    DoCmd.OutputTo acOutputReport, "rpt_tblBestellingen", acFormatRTF, "K:\bestellingen\Rapport\Rapport_" & Format(Now, "ddmmyy hhmmss") & ".rtf", True
    End If
    .Close
End With
DoCmd.Echo True
End Sub

Ik hoop dat iemand mij hiermee kan helpen.
 
Laatst bewerkt:
Ja maar dan kan ik het niet automatiseren met dat knopje volgens mij.
De opdrachtknop hiervoor zorgt dat de mail automatisch wordt verzonden. Zonder dat je outlook hoeft te openen.

Moet ik het rapport perse eerst opslaan. Daarna outlook openen. Bijlage toevoegen. Mailadress toevoegen en verzenden?

Kan ik niet iets installeren en de huidige functie alsnog gebruiken?
 
Access 2003 kan zelf geen PDF bestanden maken, dus ook niet versturen. De optie van CutePDF is dan ook een prima, simpele oplossing. Je kunt nog wel een printopdrachtgeven in Access die de CutePDF aanstuurt, omdat het in weze werkt als een printerdriver.

Een alternatief is te vinden op de site van Stephen Lebans, die een uitgebreide tool heeft gemaakt die van een rapport binnen Access een pdf bestand genereert, en dat kun je dan ook volledig geautomatiseerd verder verwerken. Ik gebruik 'm zelf ook voor sommige databases die ik heb gemaakt.

Je zult er nog wel een beetje aan moeten sleutelen, om hem naar eigen inzichten te laten werken. Maar hij werkt verder prima. Meer mogelijkheden zijn er verder niet, of je moet upgraden naar 2007 en hoger.
 
Dat schijnt meestal wel goed te gaan; zie andere discussies over migratie van 2003 naar 2007 (+2010). Zelf loop ik met een stevige boog om 2007 heen, al is de PDF integratie wel een duidelijk aanwijsbaar pluspunt...
 
Dat schijnt meestal wel goed te gaan; zie andere discussies over migratie van 2003 naar 2007 (+2010). Zelf loop ik met een stevige boog om 2007 heen, al is de PDF integratie wel een duidelijk aanwijsbaar pluspunt...

Hmmm. CutePDF is voor mij geen probleem. Maar de medewerkers hier hadden het toch wat makkelijker gewild.
Ik zal er is over hebben of ze een overstap zouden willen maken naar 2007 of 2010.
Anders toch maar eerst even opslaan, uploaden en verzenden.

Bedankt voor je informatie octafish en haaren101!
 
Ik gebruik de volgende code om te printen:

Code:
Private Sub Rapport_Printen_Click()
On Error GoTo Err_cmdrpt_tblBestellingen_Click
Dim stDocName As String

    stDocName = "rpt_tblBestellingen"
    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.OpenReport stDocName, , , , , "[BestellingID]=" & Me.BestellingID
    Exit Sub

Err_cmdrpt_tblBestellingen_Click:
MsgBox Err.Description

End Sub

En de volgende code heb ik gevonden om het een klein beetje te automatiseren. Dus dat de bestandsnaam automatisch wordt ingevoerd.

Code:
Dim sFileAndPath As String 

sFileAndPath = "Bestelling.pdf" 

SendKeys sFileAndPath, False 
SendKeys "{Enter}", False 
DoCmd.OpenReport "rpt_tblBestellingen", acViewNormal 
DoCmd.PrintOut 
DoCmd.Close

Ik heb deze proberen te koppelen maar dan loopt access vast.

Hoe moet ik dit voormekaar krijgen?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan