最近我已將我的Access 2000後端數據和表遷移到2012 SQL服務器。在訪問前端中,我鏈接了已遷移的SQL表。除(現在)一種形式之外,大部分工作正常。訪問2000 - 無效的字符值轉換規範(#0) - 訪問SQL
在這種形式的數據正在從SQL服務器使用此查詢加載:
SELECT * FROM qryAbonementens WHERE EindDatum is null or EindDatum>=now()
它還使用的過濾器和排序:
((Lookup_cmbOrderNummer.Omschrijving="GJK"))
以及排序:
Lookup_cmbOrderNummer.Omschrijving
這些事情可能是無關緊要的,但我只是儘可能發佈。
表單中的數據加載完美的,但是當我試圖改變一個記錄的形式,我不斷收到:
error invalid character value for cast specification (#0)
雖然檢查出有相同問題的帖子中,我遇到了這個帖子:
MS Access error "ODBC--call failed. Invalid character value for cast specification (#0)"
這讓我相信,我錯過了PK所以首先我的地方在Access設計模式,檢查鏈接的表:
Tekst = text,Numeriek = numeric,Datum/tijd = date(抱歉它是荷蘭語)。
SQL中的同一個表是這樣的:
他們都有PK,所以我想這是沒有問題的。
雖然在查看兩種數據類型時,可以在InkoopPrijs
和VerkoopPrijs
字段中看到2個差異。在SQL中,這兩個是decimals(30,2)
,並且在鏈接訪問表中的設計視圖中,我猜測它們是未知的,因此它們正被轉換爲text
值。也許這是我的錯誤信息的原因?
我在什麼地方閱讀,添加時間戳字段添加到SQL服務器可以幫助,但我不知道它也適用於我的情況或如何做到這一點。
感謝您的意見,但它不起作用。我將SQL服務器中的數據類型更改爲「十進制(18,2)」而不是「30,2」。儘管如此,這並沒有任何效果。我現在正在收到錯誤:「數字縮放已導致數值削減」。這導致我現在有很多或'#error'值(所以我想我需要30,2)?除此之外,當我更改記錄時,另一位用戶更改了記錄,如果保存記錄,則更改將被覆蓋。保存記錄正在變灰。 – Nicolas
P.S.當我將小數的SQL長度更改爲'18,2'時,訪問鏈接表從文本更改爲'numeric'('decimal 18,2')。 – Nicolas
@Nicolas:您何時何地得到縮放誤差?你真的在表中有小數點前18位數字嗎? – Andre