2016-04-22 33 views
0

我很難找到有關此特定問題的任何信息。我發現的唯一信息是,這似乎是Access 2010中的一個錯誤(我希望他們在2013年修復了這個錯誤,並且我完全不知道該解決方案)。DoCmd.SendObject方法和錯誤3211訪問2013 VBA

我在訪問vba中使用DoCmd.SendObject方法在on_click事件中通過電子郵件在一個命令按鈕中發送報告。我的代碼似乎工作得很好,並按預期發送電子郵件。問題在於,在運行代碼之後,即使報表已關閉,我仍無法對用作報表記錄源的表進行任何更改。我得到錯誤3211「無法鎖定記錄源,因爲它正在使用.....」

我已經刪除了DoCmd.SendObject代碼,並且沒有問題對錶進行更改,但我沒有收到錯誤。我假設該方法本身在Outlook和表之間建立某種鏈接或連接。

所以,我的問題是如何解決這個問題。有使用DoCmd.SendObject方法後可以終止Outlook和表之間鏈接/連接的VBA代碼嗎?

+0

我沒有一個好的答案。如果您有單獨的前端和後端,您可以嘗試將鏈接放到前端的表格中並重新創建。這可能有幫助。 –

+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