DoCmd.SendObject 方法和错误 3211 Access 2013 VBA

DoCmd.SendObject Method and Error 3211 Access 2013 VBA

我很难找到有关此特定问题的任何信息。我发现的唯一信息是,这似乎是 Access 2010 中的一个错误(我希望他们在 2013 年修复它,我只是不知道解决方案)。

我在访问 vba 中使用 DoCmd.SendObject 方法在 outlook 中根据命令按钮的 on_click 事件通过电子邮件发送报告。我的代码似乎工作正常,电子邮件按预期发出。问题是,在 运行 代码之后,我无法对用作报告记录源的 table 进行任何更改,即使报告已关闭。我收到错误 3211 "cannot lock record source because it is in use....."

我删除了 DoCmd.SendObject 代码,对 table 进行更改时没有任何问题,我也没有收到错误。我假设该方法本身在 Outlook 和 table 之间建立了某种 link 或连接。

所以,我的问题是如何解决这个问题。使用DoCmd.SendObject方法后,是否有VBA代码可以终止outlook和table之间的link/connection?

所有人,

我最终使用了另一种发送电子邮件的方法,它最终解决了我的所有问题,而且结果证明它比 SendObject 方法更灵活。下面是我使用的代码,希望你会发现它有用:

(仅供发现代码有用的其他人注意:我在别处使用代码创建 pdf 文件,这就是 pdf 文件名是变量的原因)

'Create a new e-mail and attach previously created pdf

            Dim strLocation As String
            Dim OutApp As Object
            Dim OutMail As Object
            Dim EmailTo As Variant
            Set OutApp = CreateObject("Outlook.Application")
            Set OutMail = OutApp.CreateItem(0)

            EmailTo = DLookup("Email", "tblTempProcessing")

                With OutMail
                .To = EmailTo
                .CC = ""
                .BCC = ""
                .Subject = "Subject Text"
                .Body = "Body Text"
                .Attachments.Add ("C:\Folder\SubFolder\" & Variable & ".PDF")
                .Send
                End With
                On Error GoTo 0