我正在测试绑定到断开连接的ADO记录集的数据表表单。当我编辑任何记录的任何部分时,我在更新发生后收到以下错误消息:
“数据已添加到数据库中,但数据不会显示在数据库中 因为它不符合基础记录来源的标准。“
我正在使用客户端游标,因为这是断开和保留记录集的唯一方法。此外,我有代码在更新发生时重新建立连接,然后再次断开连接。
我没有使用任何触发器或存储过程。我在Windows XP SP3上使用SQL Server 2008 Express和Access 2007(安装了所有更新)。我正在使用ActiveX Data Objects 2.8。
我找到了这篇文章并安装了此修补程序。我已重新启动计算机,但问题仍然存在。 http://support.microsoft.com/kb/961451
有什么想法吗?
EDIT1:
代码示例:
'rst is a form level variable (ADO Recordset Object)
With rst
Set .ActiveConnection = gCon 'Global ADO Connection Object
.Source = "SELECT i.*, c.lft FROM tblInventory AS i LEFT JOIN tblCat AS c ON i.catid = c.catid"
.LockType = adLockPessimistic
.CursorType = adOpenDynamic
.Open
End With
Set Me.Recordset = rst
Me.UniqueTable = "tblInventory"
rst.ActiveConnection = Nothing
gCon.Close
答案 0 :(得分:0)
看起来我找到了一个令人满意的解决方案。这取自ASPAlliance。
为此,我们必须在设计视图中将Form的ResyncCommand属性设置为SQL语句。
例如:重新同步命令:
Select * From tblName where FieldName = ?
如果Rowsource包含一个连接在一起的多个表的存储过程,则表单的Resync Command Property应设置为SQL语句,该语句选择与存储过程相同的字段并参数化表的主键被指定为唯一表格。