2017-02-22 77 views
1

我有一個表,我創建了一個視圖。該視圖實際上不會改變任何內容,除了列的順序和一列是從intconvertedvarchar更新到SQL視圖失敗,從鏈接表訪問

視圖設置爲Access 2013中的鏈接表。一切都很好。當我在Access中調出一個表單來編輯視圖中的行時,我得到了這個問題。

我試圖用NA更新列OSP_PERCENT_COMPLETE。最終用戶希望該字段不只是int。我更新視圖,以便它拉像這樣的列:

convert(varchar(10),OSP_PERCENT_COMPLETE) OSP_PERCENT_COMPLETE 

因此,保持相同的名稱,但現在是一個varchar場。然後,當我去更新的形式我得到這個錯誤信息

ODBC那場 - 鏈接表「PMDBII」更新失敗 訪問[微軟] [ODBC SQL Server驅動程序] [SQL服務器]更新或插入視圖或函數''失敗,因爲它包含派生或常量字段。 (#4406)

我可以檢查字段中PMDBII鏈接表,它顯示了它作爲具有10

有一件事我要提到的長度short text領域,大多數的這個成立由一位不再在公司工作的同事完成,我對Access的熟悉程度不像他那樣精通。

那麼,爲什麼我會得到錯誤?

+1

因爲'視圖'不會改變底層字段仍然是'int'的事實,你會得到這個錯誤 –

+0

@ WayneG.Dunn所以基表字段必須是'varchar'而不僅僅是視圖?這是我應該知道的。把這個作爲答案,我會關閉這個問題。 – Mike

回答

3

由於'視圖'沒有改變底層字段仍然是'int'的事實,你會得到這個錯誤。如果你使用一個表單,可能你可以在'before change'事件中包含代碼來將NA轉換爲null,但這可能是一個壞主意。

+0

讓我覺得非常愚蠢,因爲沒有意識到,開始。謝謝 – Mike