2011-08-23 75 views
0

我正在测试绑定到断开连接的ADO记录集的数据表窗体。当我编辑任何记录的任何部分时,我会在发生更新后收到以下错误消息:访问错误与断开连接的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

看起来像我已经找到了满意的工作,各地。这取自ASPAlliance

为此,我们必须将设计视图中窗体的ResyncCommand属性设置为SQL语句。

例如:重新同步命令:

Select * From tblName where FieldName = ? 

如果行来源包含多个表的存储过程结合在一起然后形式的重新同步命令属性应该被设置为的SQL语句选择与存储过程相同的字段并参数化被指定为唯一表的表的主键。