Ошибка выполнения «2147467259 (80004005)» при отправке электронной почты из кода VBA - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь отправить электронное письмо с файлом из моего VB-кода.У меня есть связанная таблица с адресами электронной почты, но я получаю ошибку времени выполнения '- 2147467259 (80004005)' Нам нужно знать, кому это отправлять.Убедитесь, что вы ввели хотя бы одно имя '

Public Function sendmail(mailSub As String, mailTo As String, _
       Optional msgBody As String, Optional mailCC As String, _
       Optional mailBCC As String, Optional mailFrom As String, _
                                Optional pathToAttach As String) As Boolean

Dim oApp As Object, oMail As Object, oAttach As Object
sendmail = False

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0) 'olMailItem=0
Set oAttach = oMail.Attachments
With oMail
    .BodyFormat = 2 'olFormatHTML=2, olFormatPlain=1, olFormatRichText=3
    .SentOnBehalfOfName = mailFrom
    .To = mailTo
    .CC = mailCC
    .BCC = mailBCC
    .Subject = mailSub
    .htmlBody = msgBody & "<BR>" & .htmlBody
    .Recipients.ResolveAll
End With
If pathToAttach & "" <> "" Then oAttach.Add pathToAttach,  olByValue, 1
oMail.Send   '<<This is where I am getting the error
oMail.Display

sendmail = True
Exit Function


End Function

Public Function getEmails(Address_type As String) As String
    Dim rst As Recordset, tbl_Email As String
    tbl_Email = "tbl_Email" ' Change this as needed
    On Error GoTo no_rec
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM " & tbl_Email & " WHERE " & _
                                   Address_type & "=TRUE")
    rst.MoveLast
    rst.MoveFirst

    While Not rst.EOF
        getEmails = getEmails & rst![Email] & ";"
        rst.MoveNext
    Wend
no_rec:
    If Not rst Is Nothing Then rst.Close
    Set rst = Nothing
End Function

1 Ответ

0 голосов
/ 24 сентября 2018

Во-первых, нет необходимости вызывать и Отправить и Отображение: если вы отображаете сообщение, вам не следует звонить Отправить - пользователь нажимает кнопку Отправить.

Если вы замените вызов «Отправить» на «Сохранить», вы увидите получателей в сообщении, отображаемом для пользователя?

...