设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: roych
打印 上一主题 下一主题

[模块/函数] 【新手入门】之十九:从“书与女友恕不外借”谈起——浅谈“Bookmark”的使用

[复制链接]
1#
发表于 2013-2-2 17:46:10 | 显示全部楼层
版主:拜读了你的文章,受益匪浅,想请教你,能否解释一下这一段语句:
rst2.Bookmark = Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark
逻辑上是什么功能,谢谢!
2#
发表于 2013-2-3 12:30:00 | 显示全部楼层
roych 发表于 2013-2-3 11:07
将当前记录集的书签设置为子窗体记录集的书签。换句话来说,选择了子窗体的某天记录,那么主窗体的记录就 ...

哦,我还以为前一句:findfirst那句就已经做了定位了
3#
发表于 2013-2-4 09:06:09 | 显示全部楼层
roych 发表于 2013-2-3 11:07
将当前记录集的书签设置为子窗体记录集的书签。换句话来说,选择了子窗体的某天记录,那么主窗体的记录就 ...

Private Sub 编号_Click()
Dim MyNum As Long
Dim rst As DAO.Recordset, rst2 As DAO.Recordset
Set rst = Me.Form.Recordset
Set rst2 = Me.Form.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset
MyNum = rst("编号")
rst2.FindFirst "编号=" & MyNum
rst2.Bookmark = Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark
End Sub

版主,我还是不太明白:既然之前一直都是用rst2来操作,findfirst"编号=" & mynum已经定位了rst2的记录位置了,然后为什么又出来Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark呢?我理解是,既然定位是rst2的记录,bookmark直接用上rst2的就是了,为什么还要用Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark赋值到rst2呢?
4#
发表于 2013-2-4 13:30:47 | 显示全部楼层
roych 发表于 2013-2-4 13:03
诚然,数据表子窗体和主窗体的数据源是相同的。先说说当时那位朋友的要求吧:
数据表子窗体只用于展示,而 ...

版主,谢谢你详细的解答,你说的逐句删除验证,我确实试过了,或者对于心中的不解表述不是很清楚,或者我换一种方式问问:
在rst2.Bookmark = Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark这一句之前
rst2.Bookmark是什么?或者说在赋值之前,rst2有没有bookmark的?
另外:
Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset的bookmark是因为rst2.FindFirst "编号=" & MyNum 这一句产生的吗?
5#
发表于 2013-2-4 14:29:02 | 显示全部楼层
roych 发表于 2013-2-4 14:03
打个不太恰当的比方吧:
书籍的目录是存在的,但是想找到我们所需要的内容,显然还要先做一个动作,那就 ...

版主,既然说先要找到书的页码,那么这句-----rst2.FindFirst "编号=" & MyNum
就是找书的页码了,而且找到的页码应该是rst2的页码,也就是说rst2的bookmark已经找到了,所以我就纳闷了,为什么下面一句的赋值不是反过来呢:
Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark = rst2.Bookmark
6#
发表于 2013-2-5 16:52:52 | 显示全部楼层
本帖最后由 smilingkiss 于 2013-2-5 17:01 编辑
roych 发表于 2013-2-5 15:05
对呀。找到书的页码之后,是不是应该根据页码去翻到目标页呢?^_^
首先,我们要确定,到底哪本是“书”,哪 ...

谢谢啊,版主
对了,关于bookmark这个属性,可以用msgbox来立即显示其值的吗?
Private Sub 编号_Click()
Dim MyNum As Long
Dim rst As DAO.Recordset, rst2 As DAO.Recordset
Set rst = Me.Form.Recordset
Set rst2 = Me.Form.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset
MyNum = rst("编号")
rst2.FindFirst "编号=" & MyNum 法:Me.Recordset.FindFirst "id=30"
MsgBox rst2.Bookmark
MsgBox Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark
rst2.Bookmark = Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark
End Sub

我在这里插入了两个msgbox,打算看看bookmark赋值前的值,不过显示是"?",bookmark有没有具体值可以显示出来的?

另外,烦请版主再帮我解释一下:
Set rst2 = Me.Form.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset
rst2.Bookmark = Me.Parent.Form.frm_Tab_查档资料_sub1.Form.Recordset.Bookmark
第一句已经把frm_Tab_查档资料_sub1赋给rst2了,那么就本身意味着frm_Tab_查档资料_sub1.bookmark就等于rst2.bookmark了吗?为什么下面那句还要重复赋一次bookmark呢?

小弟理解能力有限,望版主多多体谅,这个问题也不急的,望版主有空的时候再指点一二,我会认真学习的,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 09:15 , Processed in 0.119668 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表