Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

E-Mail aus Access direkt versenden

Begonnen von rene.hundert, November 26, 2025, 07:21:11

⏪ vorheriges - nächstes ⏩

rene.hundert

Hallo in die Runde,

die Programmierung zum Senden von E-Mail direkt aus Access heraus funktioniert bei mir eigentlich ganz gut.

Private Sub btnSend_Click()
    fx_Email_Senden
End Sub


Private Sub fx_Email_Senden()
    '--- fx_EMail_Senden ()---
   
    Dim sEmail_Adress_Absender As String
    sEmail_Adress_Absender = ctlAbsenderEMail
   
    Dim sEMail_Adress_Empfaenger As String
    sEMail_Adress_Empfaenger = ctlEmpfaengerEMail
   
    Dim sTitle As String
    sTitle = ctlBetreff
   
    Dim sText As String
    sText = ctlTextEmail
   
    '--- Use Outlook App ---
    Dim app_Outlook As Outlook.Application
    Set app_Outlook = New Outlook.Application
   
    '--- Email erstellen ---
    Dim objEmail As Outlook.MailItem
    Set objEmail = app_Outlook.CreateItem(olMailItem)
    objEmail.To = sEMail_Adress_Empfaenger
    objEmail.Subject = sTitle
   
    objEmail.Body = sText
    objEmail.Display False
       
    objEmail.Send
    '--- Email erstellen---
   
    'Abschluss
    Set objEmail = Nothing
    Set app_Outlook = Nothing
    'Abschluss
   
    '--- Use Outlook App ---
    '--- fx_E-Mail_versenden ()---
End Sub

Ich habe nur das Problem, dass er mir eine leere E-Mail erstellt, sobald ich in dem Formular irgendwo hin clicke.

Sicherlich habe ich einen Fehler in meinem Code und sicherlich könnt ihr mir dabei helfen.

Bei der Auswahl des Feldes habe ich btnSend ausgewählt und er zeigt mir auch die Handlung click daneben an.

Vielen Dank und Gruß

René

Bitsqueezer

Hallo René,

Access macht ja nichts von alleine. Wenn Du also keinen Code gebaut hast, bei dem das Formular oder z.B. der Detailbereich auf einen Klick reagieren soll, dann passiert auch keine Code-Ausführung.

ZitatBei der Auswahl des Feldes habe ich btnSend ausgewählt und er zeigt mir auch die Handlung click daneben an.
Auch nach dem 6. Lesen kann ich mir nicht entfernt vorstellen, was dieser Satz bedeuten soll.

Ich würde generell Deine Mail-Send-Funktion verbessern, indem sie nach dem Abgreifen der Control-Inhalte prüft, ob der Inhalt valide ist. Für eine Mailadresse mal minimal das Vorhandensein auf "@" und natürlich, ob der Inhalt leer ist oder nicht. Ebenso sollte ein Betreff nie leer sein. Und ein leerer Body macht i.d.R. auch keinen Sinn.

Das sollte Deine Funktion alles prüfen und abfangen und den Benutzer darauf hinweisen, und wenn nicht alles erfüllt ist, die Mail nicht senden.

Daneben hilft dann einfach, einen Breakpoint in den Code zu setzen und zu debuggen. Dann siehst Du, was da genau passiert und wer der Verursacher ist.

Ansonsten müßte man schon den gesamten Formularcode sehen, um mehr dazu zu sagen. Wenn das schon der gesamte Code war, dann kann das, was Du sagst, nicht zutreffen, da es hier keinen anderen Eventcode als den eines Buttons gibt. Vorausgesetzt, "btnSend" ist der Name eines Button-Controls und nicht eines anderen Objektes...

Gruß

Christian

Debus

Ich würde schon bei der Eingabe der Mail Adresse prüfen ob diese Valide ist.

Ungefähr so:

Public Function IsValidEmail(sEmailAddress As String) As Boolean
    Dim objRegExp As Object
    Set objRegExp = CreateObject("VBScript.RegExp")
   
    With objRegExp
        .Pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
        .IgnoreCase = True
        .Global = False
    End With
   
    IsValidEmail = objRegExp.Test(sEmailAddress)
End Function

Diese Function gibt True oder False zurück und das am besten schon bei der Eingabe. und ansonsten hat Christian recht, man müsste mal den gesamten Code sehen.

Holger