2017-09-01 26 views
0

將訪問代碼更改爲SQL Server時出現問題。我試圖將數據保存在SQL Server中,而不是在Access數據庫中。VBA訪問SQL Server表插入行爲有所不同

接入代碼

SELECT MAX("SPR-" & VAL(Replace([RequestID],"SPR-",""))+1) AS AutoID 
FROM Tb_Request; 

SQL服務器:

我認爲我正確地改變,因爲我查在SQL Server中,結果是正確的。

enter image description here

當我在訪問使用這個代碼,結果是這樣的:

enter image description here

(有一個在dbo.PilotRequest表,這是 '5555' 的數據)

有沒有人知道這個的原因?

+0

你說你有'5555',但你的圖片顯示你查詢'5556' – jsotola

+0

不,那不是。 SPR-5556是正確的,因爲我做了這樣的查詢。但是在Access程序中,我得到'0PR-#',它需要像'SPR-5556'一樣。我不知道爲什麼會發生這種情況。 –

+0

仔細看看_Request No_組合框的屬性。也許顯示的是錯誤的數據 – jsotola

回答

1

你需要在Max之外進行連接,否則你的Max會比較字符串並失敗(因爲裏面有一個字符串)。

SELECT "SPR-" & MAX(VAL(Replace([RequestID],"SPR-",""))+1) AS AutoID 
FROM Tb_Request;