首页 > 解决方案 > 了解 Me.RecordsetClone.FindFirst 命令

问题描述

我在 MS 访问中有此代码,它是这样的:

Private Sub List131_Click()
    Me.RecordsetClone.FindFirst "[iUserID] = " & Me![List131]
    Me.Bookmark = Me.RecordsetClone.Bookmark

我想我有点明白了。数据库正在制作自己的副本,并试图找到可能与之匹配的 iUserID?

但是,为什么列表最后会附加?

该代码还使用Me.Username在其他情况下如何描述?它是用户名的复制版本吗?

标签: ms-accessvba

解决方案


将 Sub 的操作分解为其组成部分,我们有以下内容:

  • Me是一个关键字,它引用当前代码正在其中执行的类的实例。例如,在 MS Access 中,如果您Me在表单模块中使用,它将返回活动表单的实例;如果您在报告模块中使用它,它将返回活动报告的实例。

  • Me.RecordsetClone返回活动表单的 Recordset 的副本,以便您可以对数据的副本执行操作,而不会影响表单显示的实时数据。

  • FindFirst "[iUserID] = " & Me![List131]正如方法名称所暗示的,在 Recordset 中找到满足给定条件的第一条记录。

    在这种情况下,标准是通过将文字字符串"[iUserID] = "与表单控件的值连接起来来构造的List131。这可能会产生一个字符串,例如:

    "[iUserID] = 12345"
    

    这就是说: “在字段等于的表单数据副本中查找第一条记录”iUserID12345

  • Me.Bookmark = Me.RecordsetClone.Bookmark书签是一种唯一标识 Recordset 中记录的方法,这样您就可以可靠地导航到此类记录,而无需了解 Recordset 中的主键或其他数据。

    在这个表达式中,“live”表单数据的书签被设置为克隆数据返回的书签,即FindFirst方法找到的记录的位置。


推荐阅读