这是ACCESS中一个曾经很多人关心的老问题,虽然从ACCESS2002已经有
鼠标滚轮事件了,但它并不提价取消事件的参数,所以还是一个麻烦的问题。
在网上主要有2种解决方法 一个是使用子类化方法,在ACCESS中使用子类很占用资源并且导致不稳定,估计没有多少人敢用。
一个在窗体上用公共变量保存记录位置,在用
鼠标滚轮移动记录后用代码重新移回原位置,这个方法的缺点是实际上记录已经移动了,如果有修改的记录,记录也已自动保存,达不到主要目的。
在这里我提供一个新的解决方案,主要是利用主子窗体的特性,在网上也有人提出用子窗体,但没有说出具体的实现方法。
虽然是用了主子窗体,但通过一些设置可以实现看上去只有一个窗体的效果。
我们知道,当窗体只有一条记录,并且不能添加新记录时,鼠标滚轮是没有用处的,根据这一点,通过如下方法实现窗体禁止鼠标滚轮,首先,需要主子2个窗体,子窗体放在主窗体的主体节上,两个窗体记录来源相同,设置链接字段主窗体可以只包含主链接字段,并且不需要添加任何控件,记录选择器属性设为否,导航按钮设为是子窗体上添加需要显示的字段,子窗体的记录选择器属性设为是,导航按钮设为否,然后,在主窗体上添加代码实现如下功能:
主窗体移到新记录时,
鼠标滚轮允许子窗体添加记录,子窗体设为数据输入模式,断开主子窗体连接,如果窗体移到其它记录时,恢复主子窗体连接,禁止子窗体添加记录,取消子窗体数据输入模式。
在子窗体上添加代码实现如下功能:子窗体插入新记录后,同步主窗体。