2016-05-03 3 views
2

Первый плакат ... Я довольно новичок в VBA и в настоящее время на стадии сорока/сжимания и модификации, но надеюсь, что это не будет долго.Отправка электронной почты при доступе через запрос и VBA

В настоящее время я играю в Access и пытаюсь разработать базу данных, в которой учителя регистрируют приложение, когда ему нужен урок, который нужно охватить (в идеале я бы сделал это в SQL, но я не могу сейчас).

База данных и форма в Access почти все, что я думаю, но я хотел бы, чтобы база данных уведомляла определенного сотрудника штата о том, когда приложение сделано. Выбор члена персонала будет сделан путем выбора его/ее из выпадающего списка, управляемого запросом. Причина запроса заключается в том, что я хочу, чтобы конкретные сотрудники получали это уведомление, в основном тех, кто управляет другим персоналом.

После того, как этот сотрудник был выбран, я по сути хочу, чтобы человек, делающий приложение, нажал кнопку, которая затем отправит электронное письмо человеку, выбранному в поле со списком. Я пробовал что-то делать вместе в VBA, но я получаю мерцание Outlook, делая что-то, а затем ничего.

Это то, что я до сих пор, с DLookup помощью сотрудника, выбранного в выпадающем списке, чтобы затем найти адрес электронной почты в таблице персонала:

Private Sub Command788_Click() 
Dim Email_Note As Variant 
Email_Note = DLookup("Email", "Staff", Forms![Cover Application Form]!Combo767) 
Dim olLook As Outlook.Application 
Dim olNewEmail As Outlook.CreateItem 
Dim StrContactEmail As String 
Set olLook = New Outlook.Application 
Set olNewEmail = olLook.CreateItem(olMailItem) 
strEmailSubject = "Application for Cover: Line Manager Notification" 
strEmailText = "Something in here..." 
StrContactEmail = "Email_Note" 
olNewEmail.Display 
End Sub 
+2

olNewEmail.Send – serakfalcon

+0

Спасибо, я сделаю это изменение. Теперь я нажимаю кнопку команды и не получаю ответа. Конечно, вчера. Что вы считаете остальным? –

+0

Я думаю, вам нужно поставить точку останова в коде и изучить olLook – serakfalcon

ответ

3

Вы должны убедиться, что ссылки библиотека Перспективы на вкладке «Инструменты» редактора VBA. Также похоже, что вы создали строки для тела и темы, но не объявили их. Вместо того, чтобы объявлять их как строковые переменные, просто установите outlook. body и т. Д. В соответствующую строку, как я показал ниже.

Вам не нужно инкапсулировать email_note с кавычками, как только вы объявили его как переменную. Я предположил, что это адрес электронной почты?

strContactEmail больше не требуется, я не вижу, где он используется.

Private Sub Command788_Click() 
Dim Email_Note As Variant 
Email_Note = DLookup("Email", "Staff", Forms![Cover Application Form]!Combo767) 
Dim olLook As Outlook.Application 
Dim olNewEmail As Outlook.mailItem 
'Dim StrContactEmail As String 
Set olLook = New Outlook.Application 
Set olNewEmail = olLook.CreateItem(olMailItem) 
    olNewEmail.Subject="Application for Cover: Line Manager Notification" 
    olNewEmail.Body = "Something in here..." 
    olNewEmail.To = email_note 
    olNewEmail.Send 
Set olNewEmail = Nothing 
Set olLook = Nothing 
End Sub 
+0

Oooh okay - Я дам вам хороший взгляд и дам вам знать. Благодаря! –

+0

И да - Email_Note будет адресом электронной почты, возвращенным DLookup. Во всяком случае, это идея. –

+0

Опять же, 'Dim olNewEmail As Outlook.CreateItem' должен быть' Outlook.MailItem'. :) – Andre