#email #ms-access
#Адрес электронной почты #ms-access
Вопрос:
У меня есть таблица с именем PersonsContactDetails, где у меня есть два поля: ContactDetailType и ContactDetailValue. В первом поле хранится тип электронного письма: «Личное электронное письмо», «Рабочее электронное письмо», «Общее электронное письмо», во втором поле хранится адрес электронной почты.
Я запускаю запрос PersonalEmailList и WorkEmailList, в которых хранятся не только соответствующие типы электронных писем, но и страна происхождения, город и пол.
Я хотел бы отправить электронное письмо всем контактам, в зависимости от их страны происхождения, города или пола. Я попытался отфильтровать QueryDataSheet и запустить цикл VBA с OpenRecordset, но я получаю «Ошибку несоответствия типов», я понимаю, что OpendRecordSet работает только с таблицами данных.
Как я могу перейти к этому решению, зная, что моя цель во всем этом — отфильтровать электронные письма контактов по моему запросу в зависимости от их страны, города или пола, и оттуда отправить электронное письмо (конечно, используя поле BCC).
Ответ №1:
Достаточно простой способ — создать набор записей из вашей таблицы или запроса, например:
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 " _
amp; "WHERE CountryOfOrigin = 'Tsort'"
Set rs = db.OpenRecordset
Do While Not rs.EOF
If Not IsNull(rs!PersonalEmail) Then
EmailList = ";" amp; 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