powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Создание электронной почты VBA
21 сообщений из 21, страница 1 из 1
Создание электронной почты VBA
    #40038805
thorabric95
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.

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

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

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

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

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

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

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

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

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

Он уже отправил почту , и на канарах кости греет.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40040491
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,
Блин....
а я в обломе барахтаюсь.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40040552
час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
Создание электронной почты VBA
    #40040659
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Михаил Михайлович Л,
что это за зверь? DoCmd.SendObject
Пойду искать подробности.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042583
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Михайлович Л,

Возможно ли как то сформированный запрос впихнуть в HTML средствами VBA ?
Что бы запрос прям табличкой вставить в HTML
и уже этот HTML отправить по почте.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042599
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042600
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,
это хорошо.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042632
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58
Возможно ли как то сформированный запрос впихнуть в HTML средствами VBA ?
Что бы запрос прям табличкой вставить в HTML
и уже этот HTML отправить по почте.
например так
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042661
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,
спасибо. но похоже это создано в более поздней версии чем access 2007
можно конвертнуть??
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042666
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Михайлович Л,
получается DoCmd.SendObject
работает только с оутлуком?
я правильно понял?
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042854
час58, На сколько я помню, вызывается та программа, которая MAPI по умолчанию обрабатывает.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042860
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час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
Создание электронной почты VBA
    #40042883
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene-LS,
Спасибо за пример.
оутлуком ни когда не пользовался.
...
Рейтинг: 0 / 0
Создание электронной почты VBA
    #40042899
Eugene-LS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58
оутлуком ни когда не пользовался.

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

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


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



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


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