Vba 使用Outlook在MS Access上发送电子邮件的Visual Basic代码
我在MS Access报告中有以下Visual Basic代码。运行报告时,我的计算机上也打开了Outlook应用程序,如果MS Access“Comments”表中的“Sequence Number”列中的值等于“Parts.mdb”数据库中的3276,我希望发送电子邮件。代码没有给出任何错误,但我运行报告时没有收到电子邮件 以下是完整的代码: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
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请不要编辑您的问题以使现有答案无效,因为这样会使其他有相同问题的人更难找到解决方案!要么写一个附录,对答案提出质疑(就像你所做的那样),要么创建一个新问题。