2016-11-17 76 views
0

我有一個數據庫,一直運行良好,直到今天早上幾年。當我嘗試將遠程表的內容複製到本地後端時,出現一個錯誤:「錯誤3622 - 您必須使用dbSeeChanges選項...」MSAccess - dbSeeChanges錯誤?

遠程表位於服務器上,有一個AutoNumber屬性。後端表是一個簡單的只讀/靜態快照,不關心自動編號數據類型,簡單地定義爲數字 - 我只需要表(快照)就本地性能問題。

我添加了dbSeeChanges變量而沒有成功 - 在db.execute行(下面)上抱怨「太少參數」。

下面是我的數據庫的一些細節:

Dim db As Database 
dim strSQL as string 
Set db = CurrentDb() 

strSQL = "INSERT INTO Item " & _ 
    "SELECT dbo_Item.* " & _ 
    "FROM dbo_Item " & _ 
    "WHERE dbo_Item.MASTER_INVID= " & TempVars!my_InvID 

    db.Execute strSQL, dbFailOnError + dbSeeChanges 

我缺少什麼?任何建議,以避免/糾正。

+0

我覺得有一些東西與你的SQL字符串回事。 'Debug.Print'執行前。請參閱[如何在VBA中調試動態SQL](http://stackoverflow.com/questions/418960/managing-and-debugging-sql-queries-in-ms-access/1099570#1099570) – Andre

+0

debug.print外觀很好: INSERT INTO項目SELECT dbo_Item。* FROM dbo_Item WHERE dbo_Item.MASTER_INVID = 4892 –

+1

@Andre - 你可能會在那裏做點什麼!我連接到錯誤的服務器,那裏的「Master_InvID」attr不是數據模型的一部分。這個attr從我連接的地方下游創建。 - 謝謝! –

回答

1

另一種方式做,這是使鏈接表的副本,然後隱蔽,爲本地表:

localTableName = "Item" 
DoCmd.CopyObject , localTableName , acTable, "dbo_Item" 
DoCmd.SelectObject acTable, localTableName , True 
RunCommand acCmdConvertLinkedTableToLocal 
+0

這很有趣,我從來沒有聽說過'acCmdConvertLinkedTableToLocal'。它是否也適用於ODBC鏈接表,或僅適用於從Access數據庫鏈接的表? – Andre

+0

是的,它也適用於ODBC服務器等ODBC源。 – ClintB