Я использую MS Access для создания базы данных с более чем 5000 контактами. Эти контакты разделены в зависимости от того, к какому сотруднику принадлежит контакт, а затем снова по категориям для удобного поиска. Я хочу создать кнопку, которая будет открывать запрос в табличной форме (простая), а затем установить флажки, чтобы сотрудник мог выбрать, например, 100 контактов для отправки электронной почты из 110 в таблице, а затем отправить массовое электронное письмо, например, информационный бюллетень (не все так просто!). Я схожу с ума, пытаясь понять, как это сделать, поскольку я действительно не разбираюсь в программировании (я временный, брошенный на эту работу, и просто делаю все, что могу), и все, что я могу найти по этому поводу, - это что-то о циклах (понятия не имею!) и что для этого мне нужно программное обеспечение.
Какие-нибудь решения для меня, пожалуйста? Я бы хотел по возможности избегать покупки / установки программного обеспечения, и если у вас есть ответ, сделайте его как можно проще ...
Заранее спасибо!
Кейт





Я думаю, вам нужно будет изучить код VBA, чтобы это сделать. Этот руководство может быть полезен.
Вот путь к отправить электронное письмо из доступа.
Вот еще один ресурс для отправки электронная почта через MS Access
Я только что создал следующий пример работающий в MS Access 97.
Образец таблицы (я тестировал код с действующими адресами электронной почты):
ID Имя Электронная почта
1 Рикс [email protected]
2 Кейт [email protected]
Форма с одной кнопкой. При нажатии кнопки выполняется следующий код:
Private Sub Mail_Click()
Dim r As Recordset
Dim email As String
Set r = CurrentDb.OpenRecordset("select * from Addresses")
Do While Not r.EOF
email = r(2)
DoCmd.SendObject acSendNoObject, Null, Null, email, Null, Null, "Test subject", "Message body of the test letter", False, Null
r.MoveNext
Loop
r.Close
End Sub
Надеюсь, вы сможете вставить его в свое приложение.
Ответ, предоставленный rics, отправит электронное письмо всем участникам набора записей, но похоже, что, возможно, вы хотите отправить одно электронное письмо в настраиваемый список рассылки. Для этого настройте код rics, чтобы создать адресную строку примерно так:
Личная подписка Mail_Click ()
Dim r As Recordset
Dim email As String
Set r = CurrentDb.OpenRecordset("select * from Addresses")
Do While Not r.EOF
email = email & r(2) & ";"
r.MoveNext
Loop
r.Close
DoCmd.SendObject acSendNoObject, Null, Null, email, Null, Null, "Test subject", "Message body of the test letter", False, Null
Конец подписки
Если какое-либо электронное письмо пустое или пустое, у вас возникнут проблемы.
а ты можешь объяснить, что ты имеешь в виду ??
Кейт,
К сожалению, не существует особого «волшебного» кода для того, что вы планируете делать. Вам нужно будет что-то написать. Мое решение было бы:
Щелкнув по кнопке, я
Объедините все выбранные электронные письма, чтобы получить строку "sendTo", например sendTo = "[email protected]; [email protected]". Вызовите метод doCmd.sendObject, используя sendTo + текстовую строку в качестве аргумента.
Возможные варианты:
Получил работу :)
Код был отличным, но для работы с моими данными потребовалась некоторая доработка. После того, как появилось много ошибок, я наконец придумал:
Dim r As Recordset
Dim Email As String
Set r = CurrentDb.OpenRecordset("select Email from FranksFinanceBrokers")
Do While Not r.EOF
Email = Email & r(0) & ";"
r.MoveNext
Loop
r.Close
DoCmd.SendObject acSendNoObject, Null, Null, "", "", Email, "", "", True, Null
End Sub
Спасибо за помощь, ребята!
Поскольку вы не добавляли образцы кода, я работал в своей тестовой среде, поэтому необходима настройка.
Электронная почта из Access имеет ряд подводных камней, не в последнюю очередь из-за того, что это может сделать вас похожим на спамера и вызвать проблемы с вашим почтовым хостом. Кроме того, существует множество проблем с безопасностью. Лучший источник информации об этом - Электронная почта Тони Тэйвза: часто задаваемые вопросы.
Есть несколько способов обойти пропавшие адреса электронной почты. Самый простой - настроить SQL, чтобы исключить их:
выберите адрес электронной почты от FranksFinanceBrokers, ГДЕ (адрес электронной почты НЕ ПУСТОЙ) И (адрес электронной почты <> "")
Другой подход заключался бы в добавлении оператора IF в код построения строки:
ЕСЛИ Not IsNull (r (0)) AND r (0) <> "" ТОГДА Электронная почта = Электронная почта & r (0) & ";"
Я бы просто отфильтровал это на уровне SQL - эффективнее и проще.
Было бы проще купить программное обеспечение для этого? Да, но где в этом проблема? :-) Вы уже прошли большую часть пути, так что я буду придерживаться этого.
Да, я получаю больше удовольствия (и получаю так много опыта), проделывая долгий путь! Я преодолел свою проблему, настроив указанный код, чтобы он по существу игнорировал ошибку, отлично работает :)
Когда вы начинаете автоматическую рассылку писем более чем нескольким людям одновременно, если вы не подписаны на цикл обратной связи с интернет-провайдером, не имеете учетной записи abuse @ для жалоб, и особенно если вы не удаляете доставляемые адреса из своего списка , вы попадете в черный список в течение нескольких дней, и вам будет сложно исключить его из списка очень. Вам следует работать с поставщиком услуг электронной почты (ESP), таким как Constant Contact (нет, я не работаю на них). Они автоматически делают всю эту ерунду за вас. супер - плохая идея делать это хакерским способом.