Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание электронной почты VBA / 21 сообщений из 21, страница 1 из 1
25.01.2021, 20:53
    #40038805
thorabric95
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Привет всем.

У меня есть форма, которая извлекает данные из одной таблицы. Форма отлично работает там, где мне нужно. Я закодировал кнопку для извлечения данных из этой формы в электронное письмо и добавления деталей там, где они мне нужны.

Проблема в том, что мне нужно добавить в электронное письмо поля, которых нет в форме, но которые указаны в этих полях.

В частности, например, в форме есть поле сотрудника, и это поле сотрудника связано с другой таблицей. В другой таблице указан номер телефона сотрудника, адрес электронной почты и т. Д.

В основном, как мне добавить VBA, скажем, электронная почта сотрудников на основе поля сотрудника, которое уже существует в форме.

Я знаю, как извлекать данные из формы с помощью Me. но я не могу понять, как получить эти другие данные, которые мне нужны.
...
Рейтинг: 0 / 0
25.01.2021, 23:52
    #40038822
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
thorabric95
но я не могу понять, как получить эти другие данные, которые мне нужны

Если Вы работаете в VBA , эти данные из таблиц Вы можете получить открыв Recordset или Dlookup .
...
Рейтинг: 0 / 0
25.01.2021, 23:59
    #40038826
bubucha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
thorabric95

Я знаю, как извлекать данные из формы с помощью Me. но я не могу понять, как получить эти другие данные, которые мне нужны.

В форме нет и не бывает данных, они могут быть в источнике, на который натянута форма. Если данных не хватает, то можно использовать запрос, а в качестве критерия отбора использовать значения текущей записи из формы.
...
Рейтинг: 0 / 0
26.01.2021, 16:51
    #40039059
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
thorabric95,

Если ты электронную почту отправляешь средствами VBA ,
можешь код выложить тута?
Или мне на почту кидануть. Почта в профиле.
...
Рейтинг: 0 / 0
26.01.2021, 23:29
    #40039161
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
час58
Или мне на почту кидануть. Почта в профиле

Он уже отправил почту , и на канарах кости греет.
...
Рейтинг: 0 / 0
01.02.2021, 14:18
    #40040491
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
DarkMan,
Блин....
а я в обломе барахтаюсь.
...
Рейтинг: 0 / 0
01.02.2021, 15:58
    #40040552
Создание электронной почты VBA
час58,

Я через обычный DoCmd.SendObject делаю.
Есть форма, которая перебирает инициаторов, и для каждого запускает отправку отчета.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
      
        DoCmd.SendObject acSendReport, "бе-е", "Excel97-Excel2003Workbook(*.xls)", _
        ПолеEmail, "post@post.com", "", "бее " & Format$(Date, "dd/mmm/yyyy"), _
        "Добрый день" & Chr(13) & Chr(10) & "жду письмо об***" & Chr(13) & Chr(10) & _
        Chr(13) & Chr(10) & _
         заявкиид([Инициатор]) & Chr(13) & Chr(10) & _
         Chr(13) & Chr(10) & _
        "C Уважением" & Chr(13) & Chr(10) &"**", True
  



Точнее есть отчет, который сделан на основании запроса, который в качестве параметра берет поле инициатор из вызывающей формы.
По нажатию кнопки, модуль пробегает по всем записям формы и для каждой запускает DoCmd.SendObject.
...
Рейтинг: 0 / 0
01.02.2021, 19:28
    #40040659
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Спасибо Михаил Михайлович Л,
что это за зверь? DoCmd.SendObject
Пойду искать подробности.
...
Рейтинг: 0 / 0
06.02.2021, 13:08
    #40042583
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Михаил Михайлович Л,

Возможно ли как то сформированный запрос впихнуть в HTML средствами VBA ?
Что бы запрос прям табличкой вставить в HTML
и уже этот HTML отправить по почте.
...
Рейтинг: 0 / 0
06.02.2021, 14:29
    #40042599
Predeclared
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Можно.
...
Рейтинг: 0 / 0
06.02.2021, 14:30
    #40042600
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Predeclared,
это хорошо.
...
Рейтинг: 0 / 0
06.02.2021, 16:43
    #40042632
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
час58
Возможно ли как то сформированный запрос впихнуть в HTML средствами VBA ?
Что бы запрос прям табличкой вставить в HTML
и уже этот HTML отправить по почте.
например так
...
Рейтинг: 0 / 0
06.02.2021, 19:24
    #40042661
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Панург,
спасибо. но похоже это создано в более поздней версии чем access 2007
можно конвертнуть??
...
Рейтинг: 0 / 0
06.02.2021, 19:37
    #40042666
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Михаил Михайлович Л,
получается DoCmd.SendObject
работает только с оутлуком?
я правильно понял?
...
Рейтинг: 0 / 0
07.02.2021, 17:08
    #40042854
Создание электронной почты VBA
час58, На сколько я помню, вызывается та программа, которая MAPI по умолчанию обрабатывает.
...
Рейтинг: 0 / 0
07.02.2021, 17:26
    #40042860
Eugene-LS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
час58
работает только с оутлуком?

Можно отсылать майлером по умолчанию, можно специфическим.
DoCmd.SendObject - это простейшее решение.

Ниже вариант про MS OutLook
Код: vbnet
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.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
Public Sub SendEmailWtAttachment(sToEMails$, sSybject$, Optional sBody$, _
        Optional sAttachmentPath$, Optional sSaveCopyToFolder$)
'----------------------------------------------------------------------------
'MS Access VBA - процедура отправки сообщения посредством MS OutLook
'с вложением (опционально) и сохранением файла копии (опционально)
'----------------------------------------------------------------------------
'Аргументы:
'   sToEMails          'Адрес, или адреса через точку с запятой
'   sSybject           'Тема
'   sBody              'Текст (тело сообщения)
'   sAttachmentPath    'Полный путь к вложению (опционально)
'   sSaveCopyToFolder  'Путь к к папке куда сохранить копию (опционально)
'----------------------------------------------------------------------------
'Полезная инфа:
'   * MailItem Object (Outlook)
'   https://msdn.microsoft.com/ru-ru/library/office/ff861332.aspx
'   * OlItemType Enumeration (Outlook)
'   https://msdn.microsoft.com/ru-ru/library/office/ff869291.aspx
'----------------------------------------------------------------------------

Dim olObjApp As Object      'Ссылка на MS Outlook
Dim olObjItem As Object     'Ссылка на сообщение
Dim s$

On Error GoTo SendEmailWtAttachmentErr

    Set olObjApp = CreateObject("Outlook.Application")
    Set olObjItem = olObjApp.CreateItem(0) '0 = письмишко значит ...
    '* cм https://msdn.microsoft.com/ru-ru/library/office/ff869291.aspx
    
'Создание сообщения
    With olObjItem
        .To = sToEMails          'кому
        .Subject = sSybject      'тема
        .Body = sBody            'текст

        '*  Если нужно несколько вложений - можно поиграть с коллекцией ниже
        '*  и именить аргумент процедуры на массив например, но не будем усложнять
        If sAttachmentPath <> "" Then
            If Dir(sAttachmentPath) <> "" Then
                .Attachments.Add sAttachmentPath
            End If
        End If
        
        .Display 'Отображение сообщения (если нужно)
        '.Save    'Сохранение сообщения (пока в Черновиках)
        
        'Но это не фактическая отправка, а только помещение в папку "Исходящие" (OutBox)
        '.Send
        '... а далеше OutLook будет действовать по своим настройкам ("Мгновенная отправка")

'Экспортирование - если указан аргумент
        If sSaveCopyToFolder <> "" Then
            s = sSaveCopyToFolder
            If Right(s, 1) <> "\" Then s = s & "\"
            
            ' а можно м с этим: .EntryID = строчка в 50 (!!!) симсолов
            s = s & sSybject & ".msg" 'Путь сохранения копии
            'Debug.Print s
            .SaveAs s, 3 'Схраняем ...
            '... и тут 3 = olObjSaveAsMsg (MS OutLook Format *.msg)
        End If
        

    End With
    olObjItem.Display
    'olObjApp.Visible = True
    
    Set olObjItem = Nothing
    Set olObjApp = Nothing
    Exit Sub
    
SendEmailWtAttachmentErr:
   If Err.Number = "287" Then 'На всякий случай
      MsgBox "Вы отказались от создания сообщения!", vbInformation, "Сообщение не создано"
   Else
      MsgBox Err.Description, vbCritical, "Error!"
   End If
End Sub

...
Рейтинг: 0 / 0
07.02.2021, 18:28
    #40042883
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Eugene-LS,
Спасибо за пример.
оутлуком ни когда не пользовался.
...
Рейтинг: 0 / 0
07.02.2021, 19:39
    #40042899
Eugene-LS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
час58
оутлуком ни когда не пользовался.

А им никто не пользуется IMHO самый майлер
Все разное предпочитают, некоторые даже The Bat! :)
Где то, у меня, и для него было ...
...
Рейтинг: 0 / 0
07.02.2021, 19:55
    #40042902
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Eugene-LS,
Спасибо не надо для Бэта
:-)
...
Рейтинг: 0 / 0
07.02.2021, 22:38
    #40042951
Eugene-LS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
час58
Спасибо не надо для Бэта

Хорошо.
Тогда читайте справочку по своему, у него должны быть слючи запуска.
Дальше формируете полную строку запуска и:
Код: vbnet
1.
Shell "ваша строка запуска"


или
Код: vbnet
1.
2.
'Запуск:
    Shell s, vbMaximizedFocus



Чего только спамеры не придумают! :)
Можно ещё минуя майлер и напрямую из Акса на SMTP, через CDO.Message - пример ниже.
...
Рейтинг: 0 / 0
07.02.2021, 22:41
    #40042952
час58
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание электронной почты VBA
Eugene-LS,
Спасибо.
Отличный пример.
Да.
CDO беру на вооружение.
------------------------------
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание электронной почты VBA / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]