DoCmd.SendObject方法和错误3211访问2013 VBA

时间:2016-04-22 19:09:59

标签: access-vba ms-access-2013 outlook-2013

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

我在访问vba中使用DoCmd.SendObject方法通过Outlook中的on_click事件发送电子邮件发送报告。我的代码似乎工作正常,电子邮件按预期发布。问题是,在运行代码后,即使报告已关闭,我也无法对作为报告记录源的表进行任何更改。我收到错误3211"无法锁定记录源,因为它正在使用中......"

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

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

1 个答案:

答案 0 :(得分:0)

对所有人来说,

我最终使用不同的方法发送电子邮件,最终解决了我的所有问题,结果证明比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