我在MS Access中有此代码,它像这样:
Private Sub List131_Click()
Me.RecordsetClone.FindFirst "[iUserID] = " & Me![List131]
Me.Bookmark = Me.RecordsetClone.Bookmark
我想我有点理解。数据库正在复制其自身,并正在尝试查找可能与其匹配的iUserID?
但是为什么列表会在末尾追加?
在其他情况下,该代码还使用了 Me.Username (用户名)。是用户名的复制版本吗?
答案 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
方法找到的记录的位置。