如何解决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 举报,一经查实,本站将立刻删除。