我有一段代码将新行插入表中,然后检索SerialNo,使用SerialNo更新ReferenceNo列,然后再次更新数据库。
然而,在第二次更新时,我得到一个错误: 无法找到行进行更新。自上次阅读以来,某些值可能已更改。
代码看起来像这样
DataEnvironment1.rsAddNewMsg.Open
With DataEnvironment1.rsAddNewMsg
.Field1 ="mpla"
.Field2 ="mpla"
....
.Update
.ReferenceNo = "Mpla" + SerialNo
.Update
DataEnvironment1.rsAddNewMsg.Close
第二次更新时发生错误。
答案 0 :(得分:1)
经过两天的努力,我终于找到了问题。 问题是我在桌面上的一个约束,以便将另一个字段(不相关)默认为'N'。禁用此约束后,我的代码就像一个魅力! :)
youpiiii!
仅仅为了我的记录,为了找到原因我用一个小的新表模拟错误,并在其上有标识。在测试过程中,我注意到更新正在进行。所以更新部分还可以。因此,我将我的普通代码的一部分分开并通过在表上查找属性进行测试,直到找到原因。
非常感谢您的帮助:)
答案 1 :(得分:0)
您可能需要重新打开记录集才能获取更改。您还可以尝试打开动态类型recordset,这可能更好地反映数据的更新。我认为你默认会打开一个仅限前进的记录集。
抱歉,自从我上次使用ADO以来已经有很长一段时间了,所以我有点生气!