Hallo
Ich möchte ein Sammelemail versenden. Mit meinem Code muss ich aber bei jedem Email noch den Senden Knopf drücken, damit es gesendet wird und das nächste Email aufbereitet wird. Wie müsste der Code aussehen, damit das Email automatisch gesendet wird?
Private Sub cmdVersenden_Click()
Dim strEMail As String
Dim rsAuswahl As DAO.Recordset
Set db = CurrentDb
Set rsAuswahl = Me!sfrBuchenHotelSession.Form.RecordsetClone
If rsAuswahl.RecordCount > 0 Then
rsAuswahl.MoveFirst
Do Until rsAuswahl.EOF
If rsAuswahl!hotSes_Buchen = True Then
intHotel = rsAuswahl!hotel_ID
strEMail = DLookup("hotel_EMail", "tblHotel", "hotel_ID = " & intHotel)
DoCmd.OpenReport "rptHotelBuchung", acViewPreview, , "hotSes_Hotel_IDF = " & intHotel, acHidden
Reports!rptHotelBuchung.Caption = "Gästeliste"
DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Gästeliste Session 2013", "Sie erhalten die aktuelle Gästeliste"
DoCmd.Close acReport, "rptHotelBuchung"
End If
rsAuswahl.MoveNext
Loop
End If
Set rsAuswahl = Nothing
End Sub
Gruss Daniel
Hallo,
schau mal in die VBA-Hilfe zu Sendobject...
Hallo Franz
Ich habe die Einstellung gefunden, danke. Es funktioniert soweit gut, nur kommt nun ein anderes Problem zum Vorschein, zu welchem ich nach langem recherchieren im Internet keine Lösung gefunden habe.
Nun kommt eine Fehlermeldung von Outlook 2010:
Anwendung versucht Nachrichten in ihrem Auftrag zu versenden.
Weiter Hilfe: E-Mail-Sicherheit Warnmeldung unterdrücken.
Um dies zu unterdrücken habe ich im Outlook im Punkt: Programmgesteuert Zugriff auf , Bei verdächtigen Aktivitäten nie Warnhinweis anzeigen.
Doch dies hat nichts gebracht.
Ich habe das Programm Advanced Security for Outlook installiert, doch nun fehlt mir das DLL CDO.dll, im Internet habe ich gelesen, dass das CDO.dll nicht mehr von Outlook 2010 unterstützt wird.
Wer kann mir sagen, wie ich diese Warnmeldung unterdrücken kann?
Gruss Daniel
Hallo,
kenne jetzt das Verhalten von Outlook und CDO an dieser Stelle nicht genau.
Tipps, die helfen könnten:
--Das Progrämmchen "Clickyes" probieren.
--Im Code nicht .Send , sondern .Display einsetzen und ausnahmsweise den "Senden"-Button mit SendKeys "drücken".
Auf Outlook (für diesen Zweck) ganz verzichten und die Mails mit der SendMail.DLL oder über API/WinSock versenden.
Für die Organisation für die ich das Access-Programm schreibe, verwendet Windows Live Mail. Also habe ich nun umgestellt und versuche es mit diesem Mail Programm.
Wenn ich beim Befehl DoCmd.SendObject am Schluss den Wert true für das Mail vor dem Senden noch bearbeitbar stelle, funktioniert es auch mit Windows Live Mail stelle ich diesen Wert auf False damit das Mail direkt versendet wird gibt es mir die folgende Fehlermeldung:
Laufzeitfehler 2293 Microsoft Access kann diese E-Mail nicht versenden.
Die Codezeile die diesen Fehler verursacht ist die folgende:
DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Gästeliste Session 2015", "Sie erhalten die aktuelle Gästeliste", False
Kann mir jemand dabei helfen.
Andere Frage, Franz hat von sendmail.dll gesprochen. Davon habe ich keine Ahnung. Wie kann ich diese dll gebrauchen, gibt es dazu irgend eine Anwendungsbeschreibung oder so was?
Gruss Daniel
Hallo,
such einfach mal mit einer Suchmaschine nach "Sendmail.dll" ...
Hallo
Ich finde im Internet keine Artikel der mir etwas über die Anwendung von sendmail.dll erklärt. Es gibt vieles das ich gefunden habe, aber alle Beispiele und Musterlösungen, die ich gefunden habe beziehen sich auf Outlook oder auf das Standard-Email Programm das sich auf dem PC befindet.
Mein Kunde hat Windwos Live Mail und ich kann die Funktion dass sich das Email nicht zum Bearbeiten öffnet nicht unterdrücken, sobald ich sie mit false unterdrücke bekomme ich einen Fehler.
DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Session 2015", "aktuelle Gästeliste", False
Ich habe auch im Internet ein Access-Muster gefunden, dass nicht das Standard-Email Programm benützt, sonder alles mit Access löst. Doch ich bringe es nicht zum laufen. Wer kann sich diese Muster-Access Lösung mal ansehen. Ich habe es auf dieser Seite gefunden http://www.freeaccess.de/downloaddetails.asp?ID=19
Ich bin ein wenig verzweifelt. Ich komme einfach nicht weiter.
Hallo,
was geht denn nicht an dieser Beispiel-DB?
Hast Du die Grundeinstellungen für die pop- und smtp-Server richtig vorgenommen?
Welches Betriebssystem benutzt Du?
PS: Schick mir mal Deine Email-Adresse in einer PN ...
hallo Franz
Ich gehe davon aus, dass die Mail Einstellungen richtig sind. Ich werde dir die Angaben von meiner Testmail Adresse senden.
Gruss Daniel
Hallo Franz
Ich habe gestern vergessen dir zu schreiben mit welchem Betriebssystem ich arbeite: Windows 7 64 Bit
In meinem Verzeichnis windows\sysWOW64 war Winsock.dll nicht vorhanden. Ich habe dieses vom Internet runtergeladen und es in das verzeichnis kopiert. Danach wollte ich es mit regsvr32 registrieren, aber es gibt mir dabei eine Fehlermeldung. Ich weiss nicht ob es für die 64bit version einen anderen registrierungsbefehl gibt.
Ich weiss nicht ob mein Problem mit dem WinSock.dll zusammenhängt.
Ich hoffe du hast meine EMail Daten erhalten. Ich habe sie dir persönlich gesendet.
Gruss Daniel
Hallo,
habe keine Email erhalten....nur eine PN mit der Test-Mailadresse und nicht Deine richtige und ereichbare ...
Das Problem kann durchaus mit der dll zusammenhängen..
Vermutlich braucht es eine 64 bit-Version der winsock.dll
hallo Franz
Gemäss meinen Recherchen ist das DLL für 32 und 64 Bit
Extract winsock.dll from winsock.zip. We recommend that you extract winsock.dll to the installation directory of the program that is requesting winsock.dll.
If that doesn't work, you will have to extract winsock.dll to your system directory. By default, this is:
C:\Windows\System (Windows 95/98/Me)
C:\WINNT\System32 (Windows NT/2000)
C:\Windows\System32 (Windows XP, Vista, 7)
If you use a 64-bit version of Windows, you should also place winsock.dll in C:\Windows\SysWOW64\
Make sure overwrite any existing files (but make a backup copy of the original file).
Reboot your computer
If the problem still occurs, try the following:
Open Windows Start menu and select "Run...".
Type CMD and press Enter (or if you use Windows ME, type COMMAND)).
Type regsvr32 winsock.dll and press Enter.
Gruss Daniel
Hallo,
ja gut, dann sollte die Registrierung schon gelingen..
Zitat"aber es gibt mir dabei eine Fehlermeldung"
Meine Glaskugel zeigt die leider nicht an...
Hallo Franz
Im Anhang die Fehlermeldung
Lieber Franz
Vielen Dank für deine Muster DB :) Ich bin leider erst jetzt dazugekommen sie auszuprobieren.
Beim Austesten kommt nun folgende Fehlermeldung:
Abbruch wegen folgendem Grund: Authentication required
Im Code vom Formular habe ich folgende Aenderungen gemacht:
SMTPHost = "mail.gmx.net" ' Required the fist time, optional thereafter
.From = "informatik.user@gmx.ch" ' Required the fist time, optional thereafter
.FromDisplayName = "informatik-user"
.UserName = "informatik.user@gmx.ch" ' Optional, default = Null String
.Password = "informatik.user" ' Optional, default = Null String, value is NOT saved
.POP3Host = "pop.gmx.de"
.SMTPPort = 587 ' Optional, default = 25
Ich habe auch folgende Fragen:
Wo gebe ich den die Empfänger EMail Adresse ein im Formular 1?
Wo kann ich den Verweis für die dll einbinden oder kontrollieren?
Liebe Grüsse
Daniel
Hallo,
habe den Code gerade nicht vor Augen, aber es gibt eine Eigenschaft zur Einstellung der Auth-Methode.
Zudem sollte für SSL der Server Pop.gmx.net benutzt werden. Schau auf der gmx-Seite nach den richtigen Server-Einstellungen, bzw. bemühe Gockel.
Die dll-Datei kann im VBA-Editor unter Extras/Verweise gesucht und eingebunden werden.
Wenn diese Fehlermeldung (generiert vom gmx-Server) erscheint, dürfte das doch schon erledigt sein..
Hallo Franz
Es funktioniert. Ich habe die Authentifizierung auf True gestellt und nun funktioniert es. Du weisst nicht wie dankbar ich dir bin, dass ich nun eine Lösung habe die funktioniert. :) :) :)
Gruss Daniel