2015-04-02 62 views
1

我有一個傳統的Access 97前端應用程序利用SQL Server 2005後端通過SQL Server ODBC驅動程序(連接),我們使用此設置上的鏈接表功能。訪問97前端 - SQL Server 2005後端鏈接表錯誤

我每天創建,修改和鏈接表格,並瞭解不同數據類型之間發生的轉換。

似乎有一個問題,我最近創建了一個表,它與數據庫中的許多其他表具有完全相同的設置和權限,但是一旦將其鏈接到Access 97中,它似乎顯示#NAME所有列和我也收到'ODBC調用失敗'錯誤。

如果我從表中刪除主鍵並且不選擇「唯一記錄標識符」,那麼我可以查看錶中的數據,但我顯然無法編輯它。

有3列是VARCHAR的,超過255,如果我減少這些列爲255或更少,然後我能夠查看錶中的數據,但如果我然後嘗試編輯或刪除數據我收到新錯誤'Microsoft Jet數據庫引擎停止該過程,因爲您和另一個用戶正試圖同時更改相同的數據' - 我知道這是不可能的,因爲目前我是唯一有權訪問表的人。

在這個特定的表中有146列,如果我刪除這些表中的一半,那麼表開始工作,因爲它應該,再次我有表比這更多的列和工作完美。

+0

SQL服務器表上有多少個索引?如果定義了太多索引,我就會遇到問題。 – 2015-04-02 14:58:11

+0

當我看到這一點時,只是一個PK集羣索引 – JammoD 2015-04-02 14:59:04

+0

,通常是因爲PK /鏈接表鍵不匹配。在SQL方面你的唯一鍵是否與鏈接表設計中的鍵匹配? – Beth 2015-04-02 15:24:01

回答

2

像這樣的故障排除可能令人沮喪。

我發現這篇文章對我的鏈接表非常有幫助: Optimizing Microsoft Office Access Applications Linked to SQL Server

具體閱讀標題爲支持併發檢查。 您可能會嘗試的一件事是在問題表中添加一個「時間戳」列。

+0

我已經使用了提供的鏈接,並且似乎非常有幫助 - 我在嘗試在Access中打開表時遇到的錯誤包括:'DIAG [37000] [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]關鍵字附近的語法錯誤'的'。 (156)'&'DIAG [37000] [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]在字符串'=?'後未使用引號。 (105)' - 任何想法可能導致這種情況? – JammoD 2015-04-02 15:48:08

+0

我還沒有見過那個。看起來好谷歌飼料雖然... – 2015-04-02 16:25:37