【问题标题】:Access Error With Disconnected ADO Recordset断开连接的 ADO 记录集的访问错误
【发布时间】:2011-08-23 19:55:55
【问题描述】:

我正在测试绑定到断开连接的 ADO 记录集的数据表表单。当我编辑任何记录的任何部分时,我会在更新发生后收到以下错误消息:

"数据已添加到数据库中,但数据不会显示在数据库中 表单,因为它不满足基础记录源中的条件。”

我正在使用客户端光标,因为这是您可以断开连接并保留记录集的唯一方法。另外,我有代码在更新发生时重新建立连接,然后再次断开连接。

我没有使用任何触发器或存储过程。我在 Windows XP SP3 上使用 SQL Server 2008 Express 和 Access 2007(安装了所有更新)。我正在使用 ActiveX 数据对象 2.8。

我找到了这篇文章并安装了修补程序。我已重新启动计算机,但问题仍然存在。 http://support.microsoft.com/kb/961451

有什么想法吗?

编辑1:
代码示例:

'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

【问题讨论】:

    标签: ms-access ado


    【解决方案1】:

    看起来我找到了一个令人满意的解决方法。这取自ASPAlliance

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

    例如:重新同步命令:

    Select * From tblName where FieldName = ?
    

    如果 Rowsource 包含多个表连接在一起的存储过程,则表单的 Resync 命令属性应设置为选择与存储过程相同的字段并参数化表的主键的 SQL 语句被指定为唯一表。

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 2012-05-27
      • 2012-04-19
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多