Hallo zusammen,
habe ein kleines Problem. Ich möchte Mails aus Access versenden, folgender Code funktioniert auch soweit. Das Problem ist, daß das Email Feld in der Tabelle als Link definiert ist so im "An" Feld immer die Mailadressen nach diesem Muster geschrieben werden: Mail@mail.de#mailto:Mail@mail.de#
Kann man den Feldinhalt im Rahmen für den Code von Link in Text umwandeln? Wenn ja wie? Wenn nein, welche Alternativen gibt es?
Private Sub Ctl1_Mail1_Click()
Dim myMail As Outlook.MailItem
Dim myOutlApp As Outlook.Application
Set myOutlApp = New Outlook.Application
Set myMail = myOutlApp.CreateItem(olMailItem)
With myMail
' Den Empfänger der Mail festlegen
.To = Email_Ansprechpartner
' Den Betreff der Mail festlegen
.Subject = "Betreff"
' Text in die Mail einfügen
.Body = "Guten Tag " & Me.Anrede & " " & Me.Nachname_Ansprechpartner & ", " & vbCrLf & vbCrLf & Me.Email_Text
' Die Email abschicken
.Display
End With
' Objektvariablen zerstören und Speicher freigeben
Set myMail = Nothing
Set myOutlApp = Nothing
End Sub
Vielen Dank für Eure Mühen
VG
Don
Hallo Don,
zum Auflösen von Hyperlinks gibt es den Befehl HyperlinkPart
Das mailto:
kann man dann mit Replace()
entfernen oder per Mid()
abschneiden.
Dim sEMail As String
' ...
sEMail = HyperlinkPart(Me.DeinFeldName, acAddress)
sEMail = Replace(sEMail, "mailto:")
Hallo Steffen,
vielen Dank für Deine Antwort, da ich absoluter Newbiemit VBA bin, bin ich nicht ganz sicher wo der zweite Teil (sEmail..) eingefügt werden soll. Bei mir sieht es jetzt so aus.
Private Sub Ctl1_Mail1_Click()
Dim myMail As Outlook.MailItem
Dim myOutlApp As Outlook.Application
Dim sEMail As String
' Ein neue Outlook-Instanz und ein neues Mailitem erstellen
Set myOutlApp = New Outlook.Application
Set myMail = myOutlApp.CreateItem(olMailItem)
With myMail
' Den Empfänger der Mail festlegen
sEMail = HyperlinkPart(Me.Email_Ansprechpartner, acAddress)
sEMail = Replace(sEMail, "mailto:")
.To = Email_Ansprechpartner
' Den Betreff der Mail festlegen
.Subject = "Betreff"
' Text in die Mail einfügen
.Body = "Guten Tag " & Me.Anrede & " " & Me.Nachname_Ansprechpartner & ", " & vbCrLf & vbCrLf & Me.Email_Text
' Die Email abschicken
.Display
End With
' Objektvariablen zerstören und Speicher freigeben
Set myMail = Nothing
Set myOutlApp = Nothing
Set sEMail = Nothing
End Sub
bei der Zeile sEMail = Replace(sEMail, "mailto:") kommt die Fehlermeldung "Argument ist nicht optional"
Hast Du eine Lösung? Danke Dir
VG
Don
Hallo,
ich hatte den 2. Parameter vergessen:sEMail = Replace(sEMail, "mailto:","")
... und du musst dann natürlich auch die neue variable Verwenden: .To = sEMail
Top, danke jetzt funktioniert es :)