Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/47: Рейтинг темы: голосов - 47, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 18
1

Отправка почты из Access

19.07.2016, 17:42. Просмотров 8477. Ответов 18


Добрый вечер друзья,

Помогите сделать код для отправки сообщения из "формы", т.е. я выбираю номер детали "part number", он подтягивает название "поставщика и производителя" и исходя из наименования поставщика подтягивает "контакт" (7-Key contact person for Notification), которому необходимо отправить сообщение.

Причем полностью вложенную форму в теле письма.

Я честно скажу я не силен в коде VBA, так как начал месяц назад его изучать и соответственно месяц с этим кодом мучаюсь.

Помогите пожалуйста.
0
Вложения
Тип файла: rar Data base of supplier.rar (53.4 Кб, 38 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2016, 17:42
Ответы с готовыми решениями:

Отправка почты Outlook с Access
Здравствуйте возникла проблема, в Access есть електронные адреса по которым необходимо вести...

Отправка почты
Привет всем! Возник вопрос по отправке почты. С макросом docmd.sendObject и не макросом SendMail...

Отправка (прием) почты
Народ! Помогите. Нужно отправить(принять) почту из-под программы Access(a) с вложенным *.arj файлом...

Отправка почты через прокси
Доброго времени суток всем. Необходимо с локальной машины отправить почту с использованием CDO....

18
104 / 103 / 29
Регистрация: 13.03.2016
Сообщений: 474
19.07.2016, 19:19 2
Там же без всякого VBA можно отправку почты на кнопку повесить...
0
шапоклякистка 8-го дня
3654 / 2215 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
19.07.2016, 20:37 3
+1. На ленте "внешние данные" есть кнопки "создание электронного сообщения" и "управление ответами". Попробуйте, возможно это готовое решение вашей задачи.
0
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 18
19.07.2016, 20:43  [ТС] 4
"создание электронного сообщения" - отправляет полностью всю книгу (33 листа), а надо только конкретно одно сообщение.
0
шапоклякистка 8-го дня
3654 / 2215 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
19.07.2016, 20:49 5
Цитата Сообщение от alextlt Посмотреть сообщение
отправляет полностью всю книгу (33 листа), а надо только конкретно одно сообщение.
А вы отправляйте не таблицу, а запрос, который выбирает из таблицы ровно одну, нужную вам, запись. Например, в условии написать что-то вроде Код = Формы!ИмяФормы!ИмяПоляСоСпиком (а поле со списком - то, в котором пользователь выбирает нужную запись)
0
44 / 29 / 1
Регистрация: 28.09.2012
Сообщений: 959
19.07.2016, 22:11 6
alextlt, прикладываю код, возможно он поможет.
Форумчане, спасибо за помощь! После краткого тестирования все работает как нужно ( т.е при отсутствии Аксесс, только установлен Рантайм, сообщения пересылаются автоматически при возникновении события (обновления поля))
Рабочий код прикладываю.Подчеркну, что код работает при наличии Mozilla Thunderbird .Работает ли при наличии других браузеров- не проверял.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Function SendEmail()
Dim msg As Object
Dim config As String
Set msg = CreateObject("CDO.Message")
msg.BodyPart.Charset = "windows-1251"
config = "http://schemas.microsoft.com/cdo/configuration/"
With msg
.To = Me.E_Mail 'адрес получателя сообщения
.From = "no_reply@rza.ru" 'адрес отправителя сообщения - в данном случае в реальности не существует
.Subject = Me.Поле18  'тема сообщения
.TextBody = Me.Содержание 'содержание сообщения
'.AddAttachment ("Файл - Вложение1")
'.AddAttachment ("Файл - Вложение2")
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.ххх.ru" 'yandex.ru, mail.ru
.Item(config & "smtpauthenticate") = 0
.Item(config & "smtpserverport") = 25
'.Item(config & "sendusername") = "no_reply@ххх.ru" ' адрес отправителя - в данном случае в реальности не существует
'.Item(config & "sendpassword") = "izv_123" 'пароль электронного ящика отправителя - в данном случае в реальности не существует
.Item(config & "smtpusessl") = False '(yandex.ru, mail.ru =False)
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With
Set msg = Nothing
End Function
Код запускается:

Visual Basic
1
2
3
Private Sub Кто_Согласовал_AfterUpdate()
 SendEmail
End Sub
Ссылка на исходную тему, там пояснений больше.
Автоматическая отправка сообщений по электронной почте при отсутствии Аксесс на компьютере (есть Рантайм)
0
шапоклякистка 8-го дня
3654 / 2215 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
20.07.2016, 08:44 7
Цитата Сообщение от ankan Посмотреть сообщение
Работает ли при наличии других браузеров- не проверял.
Работает. Браузеры к его работае вообще ни при чем.
0
0 / 0 / 0
Регистрация: 19.07.2016
Сообщений: 18
20.07.2016, 14:46  [ТС] 8
а возможно сделать как-нибудь по проще?
К примеру как на рисунке
0
Миниатюры
Отправка почты из Access  
шапоклякистка 8-го дня
3654 / 2215 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
21.07.2016, 08:20 9
Цитата Сообщение от alextlt Посмотреть сообщение
а возможно сделать как-нибудь по проще?
К примеру как на рисунке
Ну так и делайте в точности как на рисунке. Создайте макрос, макрокоманда "Отправить объект", прописали параметры и вперед.
0
Эксперт MS Access
6643 / 4239 / 263
Регистрация: 12.08.2011
Сообщений: 12,288
22.07.2016, 12:46 10
Цитата Сообщение от alextlt Посмотреть сообщение
а возможно сделать как-нибудь по проще?
Проще просто некуда
0
534 / 97 / 11
Регистрация: 08.06.2015
Сообщений: 1,518
06.11.2016, 14:37 11
Пытаюсь отправить письмо с gmail на gmail
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Sub Кнопка5_Click()
 SendEmail
End Sub
Function SendEmail()
Dim msg As Object
Dim config As String
Set msg = CreateObject("CDO.Message")
msg.BodyPart.Charset = "windows-1251"
config = "http://schemas.microsoft.com/cdo/configuration/"
With msg
 
'.To = Me.E_Mail 'адрес получателя сообщения
.To = "prokopenko.aleksandr1979@gmail.com" 'адрес получателя сообщения
.From = "pl200880gol@gmail.com" 'адрес отправителя сообщения - в данном случае в реальности не существует
.Subject = "Тема письма"
.TextBody = "Текст письма"
 
'.Subject = Me.Поле18  'тема сообщения
'.TextBody = Me.Содержание 'содержание сообщения
'.AddAttachment ("Файл - Вложение1")
'.AddAttachment ("Файл - Вложение2")
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.gmail.com" 'yandex.ru, mail.ru
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 465
.Item(config & "sendusername") = "pl200880gol@gmail.com" ' адрес отправителя - в данном случае в реальности не существует
.Item(config & "sendpassword") = "пароль" 'пароль электронного ящика отправителя - в данном случае в реальности не существует
'.Item(config & "smtpusessl") = True '(yandex.ru, mail.ru =False)
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With
Set msg = Nothing
End Function
Добавлено через 1 минуту
Получаю ошибку - транспорту не удалось подключиться к серверу. Что я делаю не так?
0
Заблокирован
06.11.2016, 14:50 12
Цитата Сообщение от alextlt Посмотреть сообщение
а возможно сделать как-нибудь по проще?
Попроще воде так:
Visual Basic
1
DoCmd.SendObject acSendNoObject, , , "адрес", , , "Тема сообщения", "Текст сообщения"
см DoCmd.SendObject Method (Access)
0
534 / 97 / 11
Регистрация: 08.06.2015
Сообщений: 1,518
06.11.2016, 14:56 13
Цитата Сообщение от Eugene-LS Посмотреть сообщение
DoCmd.SendObject acSendNoObject, , , "адрес", , , "Тема сообщения", "Текст сообщения"
Это через почтовый клиент ?
0
Заблокирован
06.11.2016, 15:03 14
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Это через почтовый клиент ?
Ну да - через тот, что назначен по умолчанию. А иниаче никак - SMTP настроек то нигде не видно ...

Только не забудьте про Error 2501
Visual Basic
1
2
3
4
    If Err.Number = 2501 Then 'Отмена отправки пользователем
        'MsgBox "Отмененно!", vbInformation
        'Resume SendEMail_Bye
    End If
0
918 / 374 / 101
Регистрация: 21.03.2013
Сообщений: 988
07.11.2016, 10:59 15
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Получаю ошибку - транспорту не удалось подключиться к серверу. Что я делаю не так?
На ящике отправителя в настройках должна быть активна опция - "разрешить подключение ПО сторонних производителей"
название примерное - сам каждый раз ее ищу, когда нужно отправлять почту с нового джмайл
0
2840 / 772 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
07.11.2016, 23:53 16
Цитата Сообщение от alexpro1979 Посмотреть сообщение
Получаю ошибку - транспорту не удалось подключиться к серверу. Что я делаю не так?
Нужно раскомментить:
Visual Basic
1
2
'Item(config & "smtpusessl") = True ' -- [url]https://ru.wikipedia.org/wiki/SSL[/url]
Item(config & "smtpUseSSL") = True
Добавлено через 2 часа 57 минут
описка
...разкомментить... (убрать апостроф комментария) ???
2
202 / 23 / 4
Регистрация: 27.01.2015
Сообщений: 354
Записей в блоге: 1
08.11.2016, 22:04 17
Цитата Сообщение от texnik-san Посмотреть сообщение
+1. На ленте "внешние данные" есть кнопки "создание электронного сообщения" и "управление ответами". Попробуйте, возможно это готовое решение вашей задачи.
но это если аксесс 2007 верно?
0
шапоклякистка 8-го дня
3654 / 2215 / 390
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
08.11.2016, 22:50 18
Цитата Сообщение от habdulov Посмотреть сообщение
но это если аксесс 2007 верно?
*Задумалась* А вот даже и не знаю. 2010 версию я последний раз видела давно уже, подзабыла. А более поздние и не видела даже.

Но по логике, лента "внешние данные" вполне подходящее место для этой кнопки, было бы странно ее куда-то перемещать. Хотя, майкрософт ребята способные, на все способны.
0
202 / 23 / 4
Регистрация: 27.01.2015
Сообщений: 354
Записей в блоге: 1
10.11.2016, 22:06 19
Взаимодействие Office Access 2007 с Microsoft Office Outlook 2007
И ТОЧКА.... а как мне нравилась данная опция
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2016, 22:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Отправка почты с вложенным файлом
Подскажите, пожалуйста, возможно ли из-под программы на Access отправить почту с вложенным *.arj...

Отправка почты VBA в несколько адресов
Всем доброго времени суток! Подскажите, пожалуйста, как организовать отправку почту... Задумка...

Отправка почты из vba без использования Outlook
добрый день. щас задам недостойный вопрос ) нашел на форуме код (ниже прилагаю), прописал его в...

Прием почты в Access
Непрофессионал. Только окунулся в эту проблему. Сумел подключить библиотеку 'MAPIMAIL 1.0 Type...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.