Как отправить письмо из Microsoft Access с адресов, хранящихся в запросе? - PullRequest
0 голосов
/ 11 октября 2011

У меня есть таблица PersonsContactDetails, где у меня есть два поля: ContactDetailType и ContactDetailValue. В первом из них хранится тип электронного письма: «Персональный адрес электронной почты», «Рабочий адрес электронной почты», «Универсальный адрес электронной почты», во втором поле - адрес электронной почты.

Я использую Query PersonalEmailList и WorkEmailList, в которых хранятся не только тип соответствующей электронной почты, но также CountryOfOrigin, City и Gender.

Я хотел бы отправить электронное письмо всем контактам, в зависимости от страны происхождения, города или пола. Я попытался отфильтровать QueryDataSheet и получить цикл VBA с OpenRecordSet, но я получил «Ошибка несоответствия типов», я понимаю, что OpendRecordSet работает только с таблицами данных.

Как я могу перейти к этому решению, зная, что моя цель во всем этом - отфильтровать электронные письма контактов в моем запросе в зависимости от их страны, города или пола и оттуда отправить электронное письмо (конечно, с помощью BCC) поле.

1 Ответ

0 голосов
/ 11 октября 2011

Достаточно простой способ - создать набор записей из вашей таблицы или запроса, например:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...