當您試著在 Access 2007 中開啟連結的 SharePoint 資料表時,出現錯誤訊息: 「 Microsoft Office 存取資料庫引擎找不到物件"


徵狀


當您嘗試在 Microsoft Office Access 2007 中開啟連結的 Microsoft Windows SharePoint Services 資料表時,您可能會收到類似下列的錯誤訊息的錯誤訊息:
Microsoft Office 存取資料庫引擎找不到物件 '物件名稱'。請確定物件是否存在而且您其名稱和路徑名稱正確。
不過,連結的 SharePoint 資料表可以成功開啟了。之後您連結的 SharePoint 資料表以程式設計方式更新一次以上資料列中使用資料存取物件 (DAO) RefreshLink方法,就會發生這個錯誤訊息。

原因


之所以發生這個問題,是因為RefreshLink方法會略過先前的方法呼叫期間所建立的資料表關聯性。

因應措施


若要解決這個問題,以程式設計方式將刪除的資料表關聯之前更新連結的資料表的情況下,您在使用RefreshLink方法。

若要刪除的關聯性的範例副程式

若要使用副程式刪除重新整理連結之間的關係,請依照下列步驟執行:
  1. 將下列程式碼插入模組中 Microsoft Visual Basic for Applications (VBA):
    Public Sub RemoveInvalidRelationships(strTableName As String)    On Error Resume Next    Dim cnt As Integer    Dim i As Integer    Dim bForeignTable As Boolean    Dim bTable As Boolean    Dim td As TableDef        cnt = CurrentDb.Relations.Count - 1    ' Go through the relationships collection backwards, to ensure that if we delete one, we will have a valid index    For i = cnt To 0 Step -1        bTable = False        bForeignTable = False        If (StrComp(CurrentDb.Relations(i).Table, strTableName, vbTextCompare) = 0) Then bTable = True        If (StrComp(CurrentDb.Relations(i).ForeignTable, strTableName, vbTextCompare) = 0) Then bForeignTable = True                If bTable Xor bForeignTable Then            ' Determine if either the table or foreign table is the table that we are interested in            ' We will then look at the other table to determine if it exists            ' If it doesn't exist, delete the relationship            If bTable Then                Set td = CurrentDb.TableDefs(CurrentDb.Relations(i).ForeignTable)            Else                Set td = CurrentDb.TableDefs(CurrentDb.Relations(i).Table)            End If                        If Err.Number = 3265 Then                CurrentDb.Relations.Delete CurrentDb.Relations(i).Name            End If            Err.Clear        End If            Next iEnd Sub
  2. 在稱為RefreshLink方法的原始程式碼,插入下列程式碼之前 RefreshLink 原始程式的程式碼行:
    RemoveInvalidRelationships "WSSLink"
    附註"WSSLink"是由RefreshLink方法會被重新整理連結資料表的名稱。

狀態


Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。