2011-10-10 1 views
0

J'ai une table appelée PersonsContactDetails où j'ai deux champs: ContactDetailType et ContactDetailValue. Le premier enregistre le type d'e-mail: "E-mail personnel", "E-mail professionnel", "E-mail générique", le deuxième champ stocke l'adresse e-mail.Comment envoyer un courrier électronique à partir de Microsoft Access à partir d'adresses stockées dans une requête?

Je cours une Query PersonalEmailList et une WorkEmailList qui stockent non seulement le type d'email, mais aussi CountryOfOrigin, City et Gender. Je souhaite envoyer un courrier électronique à tous les contacts, en fonction de leur pays d'origine, de leur ville ou de leur sexe. J'ai essayé de filtrer la QueryDataSheet et ai une boucle de VBA avec OpenRecordSet mais j'obtiens "l'erreur d'incompatibilité de type", je comprends que le OpendRecordSet fonctionne seulement avec des tables de données. Comment puis-je procéder à cette solution, sachant que mon but dans tout cela, est de filtrer les emails des contacts sur ma requête en fonction de leur pays, ville ou sexe, et de là envoyer un email (bien sûr en utilisant la BCC) champ.

Répondre

0

Un moyen assez facile est de créer un jeu d'enregistrements de votre table ou d'une requête, comme suit:

Dim db As DAO.Database 
Dim rs As DAO.Recordset 

''If this is run from a form, it may suit to use recordsetclone, otherwise 

Set db = CurrentDB 
s = "SELECT PersonalEmail FROM PersonsContactDetails " _ 
    & "WHERE CountryOfOrigin = 'Tsort'" 
Set rs = db.OpenRecordset 

Do While Not rs.EOF 
    If Not IsNull(rs!PersonalEmail) Then 
     EmailList = ";" & rs!PersonalEmail 
    End If 

    rs.MoveNext 
Loop 

''http://msdn.microsoft.com/en-us/library/bb214075(v=office.12).aspx 

DoCmd.SendObject acSendNoObject, , , , , Mid(EmailList, 2), "Test", "Hi", True 
Questions connexes