我在MS访问中有这个代码,它是这样的:
Private Sub List131_Click()
Me.RecordsetClone.FindFirst "[iUserID] = " & Me![List131]
Me.Bookmark = Me.RecordsetClone.Bookmark
我想我有点理解。数据库正在制作自己的副本,它正试图找到可能与之匹配的iUserID?
但是为什么列表会在末尾附加?
代码在其他情况下也使用Me.Username如何描述?它是用户名的复制版本吗?
将Sub的操作分解为其组成部分,我们有以下内容:
Me
是一个关键字,指的是当前代码正在执行的类的实例。例如,在MS Access中,如果在表单模块中使用Me
,它将返回活动表单的实例;如果您在报表模块中使用它,它将返回活动报表的实例。Me.RecordsetClone
返回活动表单的Recordset的副本,以便您可以对数据副本执行操作,而不会影响表单显示的实时数据。FindFirst "[iUserID] = " & Me![List131]
作为方法名称暗示,在Recordset中找到符合给定条件的第一条记录。
在这种情况下,通过将文字字符串"[iUserID] = "
与表单控件List131
的值连接来构造标准。这可能会产生一个字符串,如:
"[iUserID] = 12345"
这就是说:“找到iUserID
字段等于12345
的表单数据副本中的第一条记录”Me.Bookmark = Me.RecordsetClone.Bookmark
书签是一种唯一标识Recordset中记录的方法,因此您可以在不知道主键或Recordset保存的其他数据的情况下可靠地导航到此类记录。
在该表达式中,“实时”表单数据的书签被设置为克隆数据返回的书签,即FindFirst
方法找到的记录的位置。