【发布时间】:2020-05-16 08:01:36
【问题描述】:
我在 MS Access 报告中有以下 Visual Basic for Applications 代码。
我在运行报告时打开了 Outlook 应用程序。
如果 MS Access“评论”表中“序列号”列中的值等于“Parts.mdb”数据库中的 3276,我想发送电子邮件。
代码没有给出任何错误,但我没有收到电子邮件。
完整代码:
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
【问题讨论】:
-
在这种情况下实际上不是您的问题,但Using parentheses in code 可能值得一读...