2012-09-11 60 views
0

我有一塊被插入新行插入表,然後檢索的SerialNo代碼,更新使用的SerialNo的ReferenceNo列,然後再次更新數據庫。VB6檢索最後自動遞增的ID和更新記錄再次

但是在第二次更新時,出現以下錯誤: 無法找到行進行更新。自上次讀取以來,某些值可能已更改。

代碼看起來像第二次更新出現這種

DataEnvironment1.rsAddNewMsg.Open 

With DataEnvironment1.rsAddNewMsg 

.Field1 ="mpla" 
.Field2 ="mpla" 
.... 

.Update 

.ReferenceNo = "Mpla" + SerialNo 

.Update 

DataEnvironment1.rsAddNewMsg.Close 

錯誤。

回答

0

您可能需要重新打開記錄集以獲取更改。您也可以嘗試打開動態類型recordset,這可能會更好地反映數據的更新。我想你會在默認情況下打開只向前記錄集。

對不起,我上次使用ADO已經很久了,所以我有點生疏了!

+0

哦!非常感謝您的回答,您指出我完全不知道的方向......我支持VB6中的一個非常舊的系統,而且我從未處理過這些問題。所以,光標位置有兩個選項:「使用服務器端遊標」和「使用客戶端遊標」。我正在使用客戶端1。我注意到只有在服務器端才提供前進選項......歡迎任何建議。非常感謝 –

1

經過兩天與這個錯誤掙扎我終於發現了問題。 問題是我在表上爲了將另一個字段(不相關)默認爲'N'而產生的約束。禁用此約束後,我的代碼就像一個魅力! :)

youpiiii!

只是我爲了設法找到原因我模擬誤差小新表中的記錄,其上具有同一性。在測試過程中,我注意到這個更新正在進行。所以更新部分是好的。因此,我將正常代碼的一部分分開,並通過chaning桌面上的屬性進行測試,直到找到原因。

謝謝你的任何幫助:)