微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MSAccess 表单搜索按钮与编辑按钮冲突

如何解决MSAccess 表单搜索按钮与编辑按钮冲突

我是这个论坛的新手,也是 Access 的新手。我有以下问题。我创建了一个表单/子表单来编辑查询的数据。我的代码中的两个控件似乎存在冲突。

“Search_Order”是一个未绑定的文本字段。如果输入文本并按下回车键,则会显示查询的相应字段。代码如下所示:

struct WidgetViewPreviews: PreviewProvider {

  static var previews: some View {
    vstack {
      WidgetView(entry: .mock)
    }
    .previewContext(WidgetPreviewContext(family: .systemSmall))
  }
}

第二个命令“ButtonSetorderDetails10”应创建子表单“sfrmChangeOrderDetails”的 RecordsetClone 并将字段“OrderStatus”的值更改为“10”的值。

它有这个代码

Set rs_Search = Me.RecordsetClone
rs_Search.FindFirst "[OrderNumber]=""" & Search_Order & """"
If rs_Search.NoMatch Then
MsgBox "Sorry,no such record '" & Search_Order & "' was found.",_
vbOKOnly + vbinformation
Else
Me.Recordset.Bookmark = rs_Search.Bookmark
End If
rs_Search.Close
Search_Order = Null
Set rs_Search = nothing
End Sub

在这里查看了两个代码并根据我的数据库的需要修改了它们。到目前为止,这两个代码都运行良好,但不幸的是只有一次。

我的问题是,一旦我点击按钮“ButtonSetorderDetails10”,我就不能用不同的顺序做同样的把戏。我可以搜索其他订单,它显示但按钮“ButtonSetorderDetails10”不再工作。如果我关闭表单并重新打开它,它会再次工作。

如果有人能告诉我我在这里做错了什么,那就太好了。

最好的问候,费迪

解决方法

我什至很惊讶一次还能工作。使用 DAO 记录集需要将数据集读入内存,然后才能看到要编辑的记录,否则只会看到 EOF 并且循环不会运行。试试:

rs_Status_Change.MoveLast
rs_Status_Change.MoveFirst
With rs_Status_Change

甚至不需要声明/设置/关闭记录集对象。

Private Sub Search_Order_AfterUpdate()
With Me.RecordsetClone
    .FindFirst "[OrderNumber]='" & Me.Search_Order & "'"
    If .NoMatch Then
        MsgBox "Sorry,no such record '" & Me.Search_Order & "' was found.",_
        vbOKOnly + vbInformation
    Else
        Me.Bookmark = .Bookmark
    End If
End With
Me.Search_Order = Null
End Sub

Private Sub ButtonSetOrderDetails10_Click()
With Me.sfrmChangeOrderDetails.Form.RecordsetClone
    .MoveLast
    .MoveFirst
    Do While Not .EOF
        .Edit
        .Fields("OrderStatus") = 10
        .Update
        .MoveNext
    Loop
End With
End Sub

可以通过运行 UPDATE 操作 SQL 来真正简化代码。

Private Sub ButtonSetOrderDetails10_Click()
CurrentDb.Execute "UPDATE ChangeOrderDetails SET OrderStatus=10 WHERE OrderNumber='" & Me.OrderNumber & "'"
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。