Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 程序人生

Access 20年来被人忽略的功能:RecordSelector记录选择器的事件

时 间:2012-08-11 05:16:48
作 者:dbaseIIIer   ID:22003  城市:深圳
摘 要:实在...实在...实在太多...太多...太多...太多人问我这个问题了,所以我实在忍不住要发布这个文章!以后叫人自己来看!写一次,以后省我不少时间!

Access 里面的RecordSelector(记录选择器)选择记录时候的事件怎么捕获?
正 文:

Access 里面的RecordSelector(记录选择器)选择记录时候的事件怎么捕获?

每每都需要问开发的人,到底捕获来干什么?本来这个记录选择器就没什么用的,Access 从发布的2.0开始就有了,但是提供给用户的操作就只有是“删除记录”所用到!

也难怪的,这个 Record Selector 只能选择一个范围的记录,用 Shift 或 Control 键多选都不能,很多开发者都会另外做个 combobox 或者 listbox 让用户多选记录,一样可以加代码删除记录的,甚至可以作更多的处理。

虽然现在已经有 Access 2015了,但是我还是在用2007开发,2010都未用到,所以如果新版本已经有RecordSelector的更好的妙用,也请告诉我,我确实是从Access2.0开始用的老用户!

而且我开发的东西,都是给大多数我不认识的人去使用的,要别人放弃娇小的office95或office2003,很多人也不愿意;到这个年代,大部分人用office2007了,我才用2007开发,要用户升级为office2010也还有很多用户不满的,一安装就耗了几个G的硬盘空间!实在是太不应该了!

返回正题,不错,记录选择器确实很简陋,但是新建窗体默认都显示的东西,却是很直观,我们用Access的目的就是快速开发的,也不想为了“选择”功能又做一个窗体的,所以还是有它存在的意义!

Access的窗体(以我用到2007来说)一直都有记录选择器,但是弊端是
1、当用快捷键 Shift-Space时,曾经与Windows的中文输入法冲突(现在很多输入法可以自定义按键了);
2、只要鼠标点击窗体里面,多选的记录就会变回选择当前记录;
3、VBA内没有代码可以捕获 “选取”、“选取范围改变”等的事件;
4、VBA内也不能捕获“已选取”范围;
5、单选或多选的记录,只对“Del”按键,或者工具列上的“删除”按钮反应;

所以解决方案就是
1、从删除事件里捕获选取的记录ID;
2、捕获事件一定不可以在窗体里面的任何控件(不然只能操作一条记录);
3、窗体里 就只能以 keypress或key_down,key_up等的事件触发
4、鼠标就只能 在记录选取器的“右击”事件里 触发

过程就是:
1、在 Delete事件 获取被删除的记录,而在 BeforeDelConfirm取消任何的 删除;
2、为 "Form View Record" 右键菜单 加上处理器
3、在表单的 keyPress加上 快捷键

要说的就说完了,要看代码的自己下载来看吧!资深用户自己知道原理就可以自己弄了!
(实例里面设置了用 Ctrl-Q 来触发的,界面没写!不好意思!)

附   件:

点击这里下载


演   示:



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助