Forms 访问表单阻止鼠标从下拉列表中选择值,强制键输入

Forms 访问表单阻止鼠标从下拉列表中选择值,强制键输入,forms,ms-access,mouse,dropdownbox,Forms,Ms Access,Mouse,Dropdownbox,我有一张数据录入表。它的标签索引正确等。有三个下拉菜单,它自动取消URL与输入事件 无论我给用户多少关于使用tab键和keboard以及检查他们刚刚输入的内容的建议。 他们仍然坚持使用鼠标从下拉菜单中选择值 问题是,在匆忙中,他们经常因使用鼠标而出错 我希望能够强制用户使用键盘输入这些字段 对于用户来说,必须查看字段的适当值,因为这些值将根据先前的选择而有所不同 我已经尝试过onclick事件,但没有效果。 我有办法做到这一点吗 我使用的是access 2007许多用户都使用access 200

我有一张数据录入表。它的标签索引正确等。有三个下拉菜单,它自动取消URL与输入事件

无论我给用户多少关于使用tab键和keboard以及检查他们刚刚输入的内容的建议。 他们仍然坚持使用鼠标从下拉菜单中选择值 问题是,在匆忙中,他们经常因使用鼠标而出错

我希望能够强制用户使用键盘输入这些字段

对于用户来说,必须查看字段的适当值,因为这些值将根据先前的选择而有所不同

我已经尝试过onclick事件,但没有效果。 我有办法做到这一点吗


我使用的是access 2007许多用户都使用access 2003。

根据您的评论,我将采用两种不同的方法之一

如果您的用户对这些代码非常满意,并且根据之前的选择知道应该使用哪些代码,那么只需使用文本框而不是组合框即可。您仍然可以在表单_BeforeUpdate事件或单个控件的_BeforeUpdate事件中放置一些验证代码

如果用户不太舒服,那么我建议您在组合框中有第一个字段是代码的描述,而不是代码本身。因此,他们不是从101、102、103中选择,而是从“小”、“中”、“大”或那些代码实际适用的任何代码中选择。如果您仍然希望显示代码本身,可以使用单独的禁用文本框来显示代码


现在回答你的实际问题。作为记录,我强烈建议不要使用这种方法。防止用户使用鼠标选择组合框的最简单方法是添加一个覆盖组合框的透明按钮

为此,在组合框上绘制一个常规命令按钮。设置透明=是,可见=是,启用=是,制表位停止=否

当用户现在点击组合时,他们实际上是在点击透明按钮,什么也不会发生。他们能够进入控件的唯一方法是从相邻控件中使用Tab键或使用热键(通过附加标签中的“&”)

一旦他们通过选项卡进入控件,并且您的代码强制下拉,他们仍然可以使用鼠标选择选项。但是,通过强制他们在开始时使用键盘,他们更有可能只是坚持使用键盘


我再强调一次,我觉得这是一个糟糕的,糟糕的,不好的主意。请不要使用这种方法。但是你问了一个技术性问题,而这个网站就是为了提供技术性的答案,所以你就来了……

我想你最终会手忙脚乱的。为什么会有人想要在十几个项目中向下滚动箭头?如果你想让他们慢下来,为什么不在末尾加上“你确定吗?”?我现在要告诉你,这不会有多大帮助。用户输入了错误的数据,这就是用户的目的。当准确性至关重要时,您必须使用复式输入系统。如果准确性不那么重要,则需要使用数据验证和/或校对。LOL用户输入错误的数据,这正是用户的目的。喜欢!!。我已经试过了,你确定他们每次都会点击Y吗?我同意为什么有人会想要指向滚动并点击,因为他们可以使用tab键和numpad,这要简单得多。。不管是不是,我需要强制从键盘输入值,因为它需要花费太多的时间来检查和更正所有内容。您认为数据输入错误完全是由于使用鼠标造成的吗?如果他们只使用键盘,为什么你这么肯定错误率会下降?在我完全打破预期的用户体验之前,我会尝试一些不那么刺耳的东西。一件容易的事情是增加下拉列表中显示的项目数,这会产生很大的影响。根据下拉列表中的选项数量,将List Rows属性设置为20或25可能会导致删除下拉列表中的滚动条,从而提高可用性。我们只讨论列表中的3到9个值。。。它们是101、102、103等代码,也有F、V、S、T等代码。用户知道这些代码代表什么,而且输入起来很简单。我观察到用户使用表单,它是鼠标和匆忙的结合,产生了性爱。用户体验最近有了很大的改善。减少在表单上花费的大量时间。再次使用验证规则和alikeThanks,我尝试了这些方法,我还尝试了控件的mousedown事件上的DoCmd.CancelEvent之类的方法。。一方面,我看到开发人员希望为用户提供“良好”的体验,但也必须在有效性和准确性之间取得平衡,特别是如果不准确会花费金钱,我也许应该提到,数据被输入到一个连续的子表单中,,“看不见的框”是一个巧妙的技巧,但是我仍然没有一个很好的解决方案,但是选择描述和绑定值看起来是一条路要走