Access-o-Mania

Access-Forum => Access Programmierung => Thema gestartet von: Mike2017 am Dezember 29, 2017, 10:05:19

Titel: Bericht per Mail senden
Beitrag von: Mike2017 am Dezember 29, 2017, 10:05:19
Hallo zusammen
Ich habe da ein Problem und könnte eure Hilfe brauchen.
Und zwar möchte ich einen Bericht per Mail Anhang versenden.  Der Nutzer soll dabei die Adresse im Mail Client selber eingeben.
Beim aufrufen des Codes wird also ein Bericht mit entsprechender Sortierung erstellt und auf dem Desktop als PDF Datei gespeichert wo auch aktuell das Access Frontend liegt. Funktioniert auch.  Nur beim Versuch die Datei zu versenden kommt immer ein Laufzeitfehler 2059, kann Objekt '|1' nicht finden.  Das verstehe ich nicht, die Datei ist doch da.  Muss ich eventuell beim versenden auch den Pfad angeben?  Oder wo liegt der Fehler?
Mike


Private Sub ctrl_BerichtPerEmail_Click()
    Dim strDateiname As String
   
    DoCmd.OpenReport "rptSuche", View:=acViewPreview, _
        WhereCondition:="[Anlage]=" & g_SucheAnlage & " AND [Status]<100"
       
     strDateiname = CurrentProject.Path & "\Bericht.pdf"
     
     DoCmd.OutputTo acOutputReport, "rptSuche", acFormatPDF, strDateiname
     DoCmd.Close acReport, "rptSuche"
   
    DoCmd.SendObject acSendReport, "Bericht", acFormatPDF, , , , "Betrifft irgendwas", "Beispiel Text", True
End Sub

Titel: Re: Bericht per Mail senden
Beitrag von: Lachtaube am Dezember 29, 2017, 10:14:01
Bericht (optional gefiltert) und (optional versteckt) in der Seitenansicht öffnen, dann DoCmd.SendObject absetzen und danach die Seitenvorschau schließen - oder wo drückt der Schuh konkret?
Titel: Re: Bericht per Mail senden
Beitrag von: steffen0815 am Dezember 29, 2017, 10:28:49
Hallo,
die Speicherung als Datei (OutPutTo) macht keinen Sinn. Du kannst mit "DoCmd.SendObject" keine gespeicherten Dateien versenden.Private Sub ctrl_BerichtPerEmail_Click()
    DoCmd.OpenReport "rptSuche", View:=acViewPreview, _
        WhereCondition:="[Anlage]=" & g_SucheAnlage & " AND [Status]<100"
    DoCmd.SendObject acSendReport, "rptSuche", acFormatPDF, , , , "Betrifft irgendwas", "Beispiel Text", True
    DoCmd.Close acReport, "rptSuche"
End Sub
Titel: Re: Bericht per Mail senden
Beitrag von: Mike2017 am Dezember 29, 2017, 10:36:19
Na das ging ja fix, vielen Dank für eure Antworten. 
Jetzt wird es mir klar.  Ich hatte irgendwo gelesen das man den Bericht nicht mit bestimmter Sortierung versenden kann ohne ihn zwischen zu speichern.  Deswegen habe ich das so gemacht. 
Habe es jetzt entsprechend abgeändert und es funktioniert.  Vielen Dank.
Mike
Titel: Re: Bericht per Mail senden
Beitrag von: Joss am Dezember 31, 2017, 19:35:06
Als Nachtrag noch ein Link zum DBWiki:
http://dbwiki.net/wiki/VBA_Tipp:_Bericht_als_PDF_per_Mail_%C3%BCber_Outlook_versenden (http://dbwiki.net/wiki/VBA_Tipp:_Bericht_als_PDF_per_Mail_%C3%BCber_Outlook_versenden)
siehe Alternative Lösung: SendObject-Methode

Gruß
Josef