Access 無法辨識連結的 SQL Server 資料表中的識別資料行

上次更新:2020 年 1 月 23 日

問題

當您在具有識別資料行的 SQL Server 中建立資料表連結時,Access 通常會將該資料行視為 [自動編號] 資料行。

顯示識別資料行被識別為 [自動編號] 資料行

在 Office e365 版本 1912 的目前通道組建 (16.0.12325.*) 和 Office 2016/2019 中,識別資料行無法正確辨識,且只能辨識為數字。

識別資料行未正確識別為 [自動編號]

當您透過使用者介面或透過程式碼建立新連結時,就會發生這種情況,但只會發生在新連結上。  除非重新整理連結,否則現有的連結不會受到影響。

Access 會因多種目的使用識別資料行的正確識別,因此這可能以多種方式影響應用程式。

例如,識別資料行通常是用來識別新增的記錄。  當不使用識別資料行時,Access 可能無法正確找到新增的資料列,這會導致資料列中的欄位顯示為 #Deleted。

顯示表示欄位已刪除的資料列

在使用 RecordSet.LastModified 屬性擷取最近新增的記錄值時,可能會看到類似的問題發生。 下列程式碼:

Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")

rst.AddNew
rst!CompanyName = "Contoso"
rst.Update

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

可能導致錯誤 3167:

指出記錄已刪除的錯誤。

在這兩種情況下,記錄都會成功新增,但是 Access 將無法成功找到記錄。

Access 通常也會忽略直接更新識別資料行的嘗試。 不過,在這些組建中,可能會允許嘗試但失敗,並產生錯誤訊息:

[SQL Server] 當 IDENTITY_INSERT 設為 [關閉] 時,無法在資料表 'tblOrders' 中插入識別資料行的明確值。(#544)

狀態:已修正

此問題的修正程式現已推出版本 1912。  您可能需要明確地強制接收修正程式的更新。  已修正組建編號應為 12325.20344。

如果您使用的是測試人員 - 慢(版本 2001)或測試人員 - 快( 版本 2002)。 那些通道尚未提供此修正程式,因此您可能需要移至目前通道。

附註: 變更版本之後,您必須重新整理任何受影響的連結,以確保它們再次正確運作。

[專家] 圖示 (大腦、齒輪)

向專家提問

與專家交流、討論 Excel 的最新資訊、更新內容和最佳做法,並閱讀我們的部落格。

Microsoft 技術社群

社群圖示

在社群中取得協助

向支援專員、最有價值專家、工程人員和其他 Excel 使用者提問,並取得相關的解決方案。

Answers 上的 Office 論壇

功能要求圖示 (燈泡、想法)

建議新功能

我們很樂意讀取您的建議和意見反應! 分享您的想法。 我們隨時洗耳恭聽。

適用於 Office 的 UserVoice

另請參閱

Access 近期問題的修正或因應措施

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×