了解Me.RecordsetClone.FindFirst命令

时间:2019-03-21 20:15:31

标签: ms-access access-vba

我在MS Access中有此代码,它像这样:

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

我想我有点理解。数据库正在复制其自身,并正在尝试查找可能与其匹配的iUserID?

但是为什么列表会在末尾追加?

在其他情况下,该代码还使用了 Me.Username (用户名)。是用户名的复制版本吗?

1 个答案:

答案 0 :(得分:2)

将Sub的操作分为各个组成部分,我们具有以下特点:

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

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

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

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

    "[iUserID] = 12345"
    

    谁在说:“在iUserID字段等于12345的表单数据副本中查找第一条记录”

  • Me.Bookmark = Me.RecordsetClone.Bookmark书签是一种唯一标识记录集中的记录的方法,因此您可以在不知道该记录集所拥有的主键或其他数据的情况下,可靠地导航到该记录。 >

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