Я не могу отправить электронное письмо, используя форму доступа, потому что я добавил функцию cc. Как мне это решить? - PullRequest
0 голосов
/ 15 апреля 2019

Я включил функцию cc в мой код, и она работает.Я могу отправить электронное письмо и cc кто-то еще.Однако я не могу отправить электронное письмо без заполнения поля cc.Письмо работает только тогда, когда я заполняю поля «Кому» и «Копия».Как мне решить эту проблему?

Private Sub btnBrowse_Click()
    Dim fileDiag As FileDialog
    Dim file As Variant

    Set fileDiag = FileDialog(msoFileDialogFilePicker)

    fileDiag.AllowMultiSelect = False
    If fileDiag.Show Then
        For Each file In fileDiag.SelectedItems
            Me.txtAttachment = file
        Next
    End If
End Sub

Private Sub btnClear_Click()
    Me.txtBody = Null
    Me.txtSubject = Null
    Me.txtTo = Null
    Me.txtAttachment = Null
    Me.txtCC = Null

End Sub

Private Sub btnHome_Click()
    DoCmd.BrowseTo 2, "HomePageMainFrm"
End Sub

Private Sub btnSend_Click()
    Dim oApp As Object
    Dim oEmail As Object

    Set oApp = CreateObject("outlook.Application")
    Set oEmail = oApp.CreateItem(0)

    oEmail.To = Me.txtTo.Value
    oEmail.Subject = Me.txtSubject.Value
    oEmail.CC Me.txtCC.Value
    oEmail.Body = Me.txtBody.Value
    If Len(Me.txtAttachment) > 0 Then
        oEmail.Attachments.Add Me.txtAttachment.Value
    End If
    With oEmail
        If Not IsNull(.To) And Not IsNull(.Subject) And Not IsNull(.Body) And Not IsNull(.CC) Then
            .Send
            MsgBox "Email Sent!"
        Else
            MsgBox "Please fill out the required fields."
        End If
    End With
End Sub

1 Ответ

0 голосов
/ 15 апреля 2019

Свойство CC объекта MailItem является строковым свойством, значением которого будет пустая строка (""), если ни один из получателей не является cc ' ed - это свойство не должно быть нулевым.

Вы можете легко решить эту проблему в своем коде, используя функцию Nz, которая будет возвращать альтернативное значение, если предоставленный аргумент равен нулю:

oEmail.CC = Nz(Me.txtCC.Value, "")

Однако, как отмечено в документации MS VBA, связанной выше, свойство CC просто содержит список отображаемых имен, разделенных точкой с запятой - вместо этого следует изменить содержимое * Коллекция 1020 * при добавлении получателей (независимо от типа получателя) в объект MailItem.

Добавление элемента в коллекцию Recipients с использованием метода Add приведет к созданию объекта Recipient, который имеет Type свойство, которое можно использовать для обозначения получателя в качестве копии, установив для свойства olCC (или 2 при использовании позднего связывания).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...