也说双子窗体联动
时 间:2017-03-15 13:15:23
作 者:李子 ID:50504 城市:宁波
摘 要:也谈利用 selectrecord() 函数实现双子窗体联动的例子
正 文:
笔者是新手,看到前面几位高手讲述的关于利用 selectrecord() 函数实现双子窗体联动的例子,很受启发。经过实践,笔者又将“半夜罗”的示例稍作优化,得到了更为简洁的联动方法。
优化的方法是,取消了在主窗体创建过渡文本框(用于链接字段值的传递)的做法,将用于联动的VBA命令直接写在selectrecord() 函数中,当子窗体A的数据记录切换时,根据函数可以直接触发另一个子窗体B的数据集的动态刷新。
下面给出selectrecord() 函数的写法:
Function selectRecord()
'1.整行变黑,方便查看是哪一条记录;
'2.让某行的第一个字段获得焦点,从而触发焦点事件,来决定选择的是哪一条记录。
On Error GoTo Err_selectRecord:
'鼠标单击时选定整行记录
DoCmd.RunCommand acCmdSelectRecord
'根据子窗体A(frmChild_A)的表(表A)的字段值(字段A)刷新子窗体B(frmChild_B)上的数据
Forms!frmMain.frmChild_B.SourceObject = Forms!frmMain.frmChild_B.SourceObject
Forms!frmMainl.frmChild_B.Form.Filter = "(表B.字段B) Like " _
& " IIf(IsNull(Forms!frmMain.frmChild_A.Form.字段A),'',Forms!frmMain_bjgl.frmChild_A.Form.字段A)"
Forms!frmMain_bjgl.frmChild_B.Form.FilterOn = True
Exit_selectRecord:
Exit Function
Err_selectRecord:
Resume Exit_selectRecord
End Function
这种做法的关键处有几点:
1、在主窗体加载时,设置两个子窗体的记录源为表的全集查询(也可以在设计视图静态设置,但不如动态设置灵活)。
如: Me.frmChild_B.Form.RecordSource = " select * FROM 表B"
2、在selectrecord() 函数中要用FORMS.标明窗体和控件的完整引用关系(因为是程序中动态赋值的),而不能简化为ME.代替。
如: Forms!frmMain.frmChild_B.SourceObject
3、要在子窗体A的“成为当前”事件中,输入 =selectRecord() ,以便记录切换时触发代码执行。
以上小技巧仅供各位向笔者一样的初学者参考使用。不当之处请指正(其它未讲清楚的可以参考“半夜罗”会员的“双子窗体联动.mdb”例子)。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)

学习心得
最新文章
- 仓库管理实战课程(15)-月度库存...(04.30)
- Access选择打印机、横纵向、纸...(04.29)
- 仓库管理实战课程(14)-出库功能...(04.26)
- 通过命令按钮让Access列表框指...(04.24)
- 仓库管理实战课程(13)-入库功能...(04.21)
- Access控件美化之--美化按钮...(04.19)
- Access多行文本按指定字符筛选...(04.18)
- Microsoft Access数...(04.18)
- 仓库管理实战课程(12)-月度结存...(04.16)
- 仓库管理实战课程(11)-人性化操...(04.15)