Vba 使用Outlook在MS Access上发送电子邮件的Visual Basic代码

Vba 使用Outlook在MS Access上发送电子邮件的Visual Basic代码,vba,ms-access,outlook,Vba,Ms Access,Outlook,我在MS Access报告中有以下Visual Basic代码。运行报告时,我的计算机上也打开了Outlook应用程序,如果MS Access“Comments”表中的“Sequence Number”列中的值等于“Parts.mdb”数据库中的3276,我希望发送电子邮件。代码没有给出任何错误,但我运行报告时没有收到电子邮件 以下是完整的代码: Option Compare Database Option Explicit Dim DB As Database Dim wrkJet As Wo

我在MS Access报告中有以下Visual Basic代码。运行报告时,我的计算机上也打开了Outlook应用程序,如果MS Access“Comments”表中的“Sequence Number”列中的值等于“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
如果有人能指出我代码中的错误,这将对我有很大帮助。谢谢

不返回任何内容。相反,它更改
记录集
对象的
索引
属性,或者如果
查找
找不到任何匹配结果,则更改
NoMatch
属性

写这行的正确方法如下:

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

在这种情况下,实际上并不是你的问题,但可能值得一读……谢谢你的回答!我按照你说的做了改变,但还是没有收到电子邮件。但是代码没有给出任何错误。您是否检查了正在验证
if
语句?(例如,将
debug.print“Yes”
放在
then
参数中)@techindustry请不要编辑您的问题以使现有答案无效,因为这样会使其他有相同问题的人更难找到解决方案!要么写一个附录,对答案提出质疑(就像你所做的那样),要么创建一个新问题。