«Ошибка RUN-TIME» 3085 «Неопределенная функция« EMAIL »в выражении» - PullRequest
0 голосов
/ 05 июля 2018

Я использую код Access VBA для автоматической отправки электронной почты через Outlook по истечении заданного промежутка времени.

Я получаю ошибку времени выполнения 3085. Я не знаю, что пошло не так или к какой функции это относится. Возможно, это ссылка, по которой мне не хватает или я где-то испортил свои функции?

Option Compare Database
Sub SendMail()
Dim db As DAO.Database
Dim rs As DAO.Recordset

Dim emailTo As String
Dim emailSubject As String
Dim emailText As String

Dim outApp As Outlook.Application
Dim outMail As Outlook.MailItem
Dim outlookStarted As Boolean

On Error Resume Next
Set outApp = GetObject(, "Outlook.Application")
On Error GoTo 0
If outApp Is Nothing Then
Set outApp = CreateObject("Outlook.Application")
outlookStarted = True
End If

Set db = CurrentDb
strSQL = "SELECT DATE, COMPANY, CUSTOMER, EMAIL(DISTRIBUTOR), FUP" & _
  " FROM Sample Query WHERE DATE = (Date())"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)

Do Until rs.EOF

  emailTo = Trim(rs.Fields("COMPANY").Value & " " & _
    rs.Fields("CUSTOMER").Value) & _
    " <" & rs.Fields("EMAIL(DISTRIBUTOR)").Value & ">"

  emailSubject = "Proposal Follow Up"
  If IsNull(rs.Fields("COMPANY").Value) Then
      emailSubject = emailSubject & " for " & _
        rs.Fields("COMPANY").Value & " " & rs.Fields("CUSTOMER").Value
  End If

  emailText = Trim("Hello " & rs.Fields("COMPANY").Value) & "!" & vbCrLf

  emailText = emailText & _
    "We put an order on " & rs.Fields("DATE").Value & _
    " for " & rs.Fields("COMPANY").Value & _
    "A follow up would be good about now"

  Set outMail = outApp.CreateItem(olMailItem)
  outMail.To = emailTo
  outMail.Subject = emailSubject
  outMail.Body = emailText
  outMail.Send

  rs.Edit
  rs("FUP") = Now()
  rs.Update

  rs.MoveNext
Loop

rs.Close
Set rs = Nothing
Set db = Nothing

If outlookStarted Then
    outApp.Quit
End If

Set outMail = Nothing
Set outApp = Nothing
End Sub

1 Ответ

0 голосов
/ 05 июля 2018

EMAIL(DISTRIBUTOR) должен быть заключен в скобки, чтобы быть действительным.

strSQL = "SELECT DATE, COMPANY, CUSTOMER, [EMAIL(DISTRIBUTOR)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...