vba - 重新查询后恢复连续形式
问题描述
MS Access 任意版本。
我有一个连续的表单,它显示记录集的一部分,基于可以以多种方式排序的查询。假设表单显示记录集的 n 条记录(其中 n>1)。表单中的第一行不必显示记录集的第一条记录。选择其中一条记录(假设第 x 行 n 的记录)。
在 Form.Requery 之后,记录集的第一条记录将始终位于表单的第一行。第一条记录也被选中。
这不好。我想在 Form.Requery 之后恢复表单,以便所选记录仍然在表单的第 x:th 行上,前提是这总是可能的。x:th 行上方和下方显示哪些记录显然取决于记录集的基础查询。
在我的情况下,如果有一种方法可以在 Form.Requery 之前计算所选行和表单中的第一行之间有多少行,则可以实现这一点。
如果选择了表单的第一行,则该计算将(与显示的记录集的哪一部分无关)结果为 0,如果选择了表单的第二行,则为 1,依此类推。
我怎么做?
还是有另一种方法可以实现相同的目标?
解决方案
如果您在表单中有任何唯一列,那么您可以执行以下操作:
Dim uniqueId : uniqueId = me.uniqueField_Value
' uniqueId hold the current selected unique field value
Form.Requery
With Me.RecordsetClone
' if uniqueId is numeric use next line
.FindFirst "[uniqueField] = " uniqueId
' if uniqueId is string uncomment next line and comment previous line
' .FindFirst "[uniqueField] = " & """" & uniqueId & """"
If Not .NoMatch Then
Me.Bookmark = .Bookmark
End If
End With
推荐阅读
- reactjs - 如何将material-ui抽屉分为header、main和Footer部分?
- ios - 在通知中点击并且用户未登录时转到特定的视图控制器
- scala - 如何使用类型别名来定义类型构造函数
- python - 检测文本中的小写首字母缩写词
- javascript - 如何使用小书签抓取部分 URL
- node.js - UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server on first connect with Heroku server
- sql-server - “-”附近的语法不正确
- vue.js - Webpack 没有插入 vue 构建
- python-3.x - 如何找到客户每次访问之间的天数差异
- sql - 如何在不更新表格的情况下更改字段?