Visual Basi c код для отправки электронной почты на MS Access с помощью Outlook - PullRequest
0 голосов
/ 30 января 2020

У меня есть следующий код Visual Basi c в отчете MS Access. У меня также есть приложение Outlook, открытое на моем компьютере, когда я запускаю отчет, и я хочу отправить электронное письмо, если значение в столбце «Порядковый номер» в таблице «Комментарии» MS Access равно 3276 в базе данных «Parts.mdb». Код не выдает никаких ошибок, но я не получаю письмо при запуске отчета.

Вот полный код:

Option Compare Database
Option Explicit
Dim DB As Database
Dim wrkJet As Workspace
Dim CoeReportsDB As Database
Dim CommentsRS As Recordset
Dim oApp As Outlook.Application
Dim oMail As MailItem

Sub SendEmail()

Set DB = CurrentDb()
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set CoeReportsDB = wrkJet.OpenDatabase("T:\Parts.mdb")

Set CommentsRS = CoeReportsDB.OpenRecordset("Comments", dbOpenTable)
CommentsRS.index = "Sequence Number"
CommentsRS.Seek "=", 3276

If Not CommentsRS.NoMatch Then
Set oApp = CreateObject("Outlook.application")
Set oMail = oApp.CreateItem(olMailItem)
oMail.Body = "Sequence Number Out of Range"
oMail.Subject = "Perform Sequence Number Reset."
oMail.To = "someone@somewhere.com"
oMail.Send
Set oMail = Nothing
Set oApp = Nothing
End If

ShutDown:
CommentsRS.Close
Set DB = Nothing

End Sub

Если кто-то может указать на ошибку ( s) в моем коде это мне очень поможет. Спасибо!

1 Ответ

1 голос
/ 30 января 2020

Метод Recordset.Seek ничего не возвращает . Вместо этого он изменяет свойство Index объекта Recordset или свойство NoMatch, если Seek не может найти совпадения.

Правильный способ записи этой строки будет следующим :

CommentsRS.Seek "=", 3276
If Not CommentsRS.NoMatch Then
...