Hallo,
hier nochmal eine SQL-Variante (mit Access2000 getestet) als
Anregung.
EmailTab sei Tabelle1,
TabEmailLoeschen sei Tabelle2.
EmailTab enthält bei mir im Feld email:
kalle@tester.com
marvin@nervig.com
r@ruessel.de
n@nervig.com
TabEmailLoeschen enthält bei mir im Feld email:
g@tester.com
k@nervig.com
n@nervig.com
marvin@nervig.com
Mit der Löschabfrage:
DELETE [email]
FROM EmailTab AS T1
WHERE [T1].[email]=(SELECT [email] FROM TabEmailLoeschen
WHERE [T1.email]=email);
lösche ich:
marvin@nervig.com
n@nervig.com
Die anderen:
g@tester.com
k@nervig.com
sind früher schon mal rausgeflogen.
Wenn du Teile der Emailaddresse vergleichen willst, brauchst du
eine Funktion, die du in der SQL-Anweisung aufrufen kannst.
In Access legt man in einem Modul eine VBA-Funktion an, die einen
Wert zurück liefert.
Ich habe als Beispiel eine Funktion, die alles nach dem @
zurückgibt (also die Domäne).
Function mailaddr(addr As String)
Pos1 = InStr(1, addr, "@", 0)
mailaddr = Right(addr, Len(addr) - Pos1)
End Function
In der Tabelle
TabEmailDomäneLoeschen habe ich im Feld
email nur nervig.com.
Mit der Löschabfrage:
DELETE *
FROM EmailTab AS T1
WHERE mailaddr([T1].[email])=
(SELECT email FROM TabEmailDomäneLoeschen WHERE
mailaddr([T1].[email]) = email );
lösche ich dann:
marvin@nervig.com
n@nervig.com
HTH