Access 20年来被人忽略的功能:RecordSelector记录选择器的事件-何保辛
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 程序人生


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

发表时间:2012/8/11 5:16:48 评论(6) 浏览(20695)  评论 | 加入收藏 | 复制
   
摘 要:实在...实在...实在太多...太多...太多...太多人问我这个问题了,所以我实在忍不住要发布这个文章!以后叫人自己来看!写一次,以后省我不少时间!

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群(群号:198465573)
 
 相关文章
表达式应用二:有图像的记录选择器  【t小雨  2010/3/26】
用 VBA 代码彻底隐藏 Access 2010 左侧的导航窗格  【Big Young  2014/10/19】
显示导航窗格/隐藏导航窗格  【宏鹏  2014/11/12】
导航选项卡主菜单实例  【茼蒿  2015/1/8】
常见问答
技术分类
相关资源
文章搜索
关于作者

何保辛

文章分类

文章存档

友情链接