Hallo loberico,
ich habe dir mal einen Code aus dem www zusammenkopiert, der für Access einigermaßen gut funktioniert. Er liefert dir alle E-Mailadressen aus einer Zeichenkette. Einige E-Mailadressen interpretiert er noch falsch (z.B. a....b.c@d.de liefert b.c@d.de), für den "Hausgebrauch" aber allemal gut. Ich benutze im Code die LIB "RegExp", die du über den Menüpunkt Extrays-->Verweise einbinden musst. Die LIB heisst "Microsoft VBScript Regular Expression x.y". Der Code sit so aus:
Public Sub Email_Extraktion()
s = "test Test a.b.c@d.e.f.de falsch ist a..b@net..com neu test@test.com" & vbCrLf & " Zeile 2 supportnet.hinki@spamgourmet.com ende"
Dim myRegExp As RegExp
Dim myMatches As MatchCollection
Dim myMatch As Match
Debug.Print s
Debug.Print "________________________________________________"
Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
Set myMatches = myRegExp.Execute(s)
For Each myMatch In myMatches
Debug.Print myMatch.Value & vbCrLf
Next
End Sub
Ich gebe im Direktfenster die E-Mailadressen eines vorbelegten Strings aus, als Test sicher zu gebrauchen. Falls du nur die erste E-Mailadresse benötigtst, musst du die for-next-Schleife raus schmeißen. Du kannst die SUB auch in eine FUNCTION umwandelt und die erste E-Mailadresse direkt in ein weiteres Feld durch SQL in einer Abfrage ausgeben.
Gruß
Ralf