【问题标题】:MS Access requery form after group delete组删除后的 MS Access 重新查询表单
【发布时间】:2017-08-28 04:13:03
【问题描述】:

Access 2010 和 Access 后端。

  1. 我使用删除查询来删除一个选定的项目组 连续形式。
  2. 删除查询在 form_delete 事件中,并且 有用。
  3. 在 form_AfterDelConfirm 事件中,我有一个 me.requery 命令,但没有重新查询表单,因为在 form_delete 中我有 Cancel = True,这会阻止 AfterDelConfirm 事件触发。如果我将 Cancel 更改为 False,AfterDelConfirm 会触发,但 me.requery 会产生错误,表明该记录正在被另一个用户使用(我是唯一的用户)。

问题是连续表单显示#Deleted 在已删除组项的已删除记录中。

我还有一个重新查询按钮,用于请求清除已删除项目的子表单。

我的目标是清除已删除的项目,而无需用户单击重新查询按钮。

我怎样才能做到这一点?

谢谢,

【问题讨论】:

    标签: ms-access-2010


    【解决方案1】:

    跳过删除查询。相反,使用您从按钮单击调用的代码中的记录集直接从表单中删除:

    Dim rs As DAO.Recordset
    
    Set rs = Me.RecordsetClone
    
    While Not rs.EOF
        ' Specify conditions for a delete, for example:
        If rs!FieldA.Value = SomeNumber And rs!FieldB.Value = "SomeText" Then
            rs.Delete
        End If
        rs.MoveNext
    Wend
    
    Set rs = Nothing
    

    不需要重新查询表单。

    【讨论】:

    • 我使用了您的方法,记录已从表单中删除,但未从表中删除。我多次打开和关闭表格进行检查,但记录仍然存在,其中一个具有防止进一步操作的焦点。
    • 我无法复制。即使表单的 AllowDelete 设置为 True,记录也会被删除,如果表单的记录源是只读的,rs.Delete 也会失败。所以其他事情正在发生。
    • 有些奇怪,但我接受您的解决方案是正确的。记录源不能是只读的,因为如果我使用删除查询然后重新查询记录将被删除。我决定暂时让用户点击重新查询按钮,感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2020-09-02
    相关资源
    最近更新 更多