отправить электронное письмо с указанием c запроса информации, доступ в мс - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь, чтобы "кнопка" в форме отправляла электронные письма людям на основе запроса. Я успешно получил его, чтобы запросить адрес электронной почты (на основе указанных c критериев) и отправить электронное письмо с общим сообщением для всех.

Я хотел бы сделать сообщения более точными c для индивидуумы - ie, включают в запрос некоторую другую информацию. Тем не менее, когда я пытался включить в текст текстовую информацию, он циклически проходил и включал информацию для всех: ie, если мой запрос выглядел так:

email               items due

1@email.com            6

2@email.com            12

Сообщение отправлялось бы и 1@email.com и 2@email.com как 6 12, когда я хотел, чтобы 1@email.com получил 6, а 2@email.com получил 12

Мой код в настоящее время выглядит следующим образом:

Private Sub Command28_Click()
    Dim strEmail As String
    Dim strSubject As String
    Dim objOutlook As Object
    Dim objMailItem As Object

    Set objOutlook = CreateObject("Outlook.Application")
    Set objMailItem = objOutlook.CreateItem(olMailItem)

    'set email addresses
    strEmail = "mail@test.com"

    Dim rs As Recordset
    Dim sql As String
    Dim i As Integer

    sql = "SELECT PeopleInfo.email " & _
    "FROM PeopleInfo INNER JOIN TestData ON PeopleInfo.company = TestData.Company " & _
    "WHERE (DateDiff('d',Date(),TestData.[Due Date]) = 4) AND (TestData.[Completion Status] = 'Incomplete');"

    Set rs = CurrentDb.OpenRecordset(sql)

    With rs
        If Not .EOF And Not .BOF Then
            .MoveLast
            .MoveFirst

            For i = 0 To .RecordCount - 1
                If i = 0 Then
                    strEmail = !email
                Else
                    strEmail = strEmail & "; " & !email
                End If
                .MoveNext
            Next
        End If
    End With

    strSubject = "Test"
    objMailItem.To = strEmail
    objMailItem.Subject = strSubject
    objMailItem.Body = "Pls tell me this worked."  

    objMailItem.Send
End Sub

Пожалуйста, дайте мне знать о любых предложениях! Заранее спасибо!

ok Обновление:

Я изменил значение For l oop следующим образом:

      For i = 0 To .RecordCount - 1
                    strEmail = !email
                    strAddIn = ![Item Type]
                    strSubject = "Test"
                    objMailItem.To = strEmail
                    objMailItem.Subject = strSubject
                    objMailItem.Body = "Pls tell me this worked. " & strAddIn
'i moved this here^^ the AddIn is working independently tbh, but i cant get it to run the rest of the loop.
                    objMailItem.Send
                .MoveNext
            Next
        End If
    End With


End Sub

По сути, оно отправит электронное письмо на адрес Первый человек с правильным Предметом, но не следующие люди.

...