我正在开发一个简单的Access 2003应用程序来跟踪某些同事需要为客户端完成的事情。每个同事都有一组客户,每个客户都有一系列需要在特定日期之前采取的行动。我已经设置了一个表单,其中包含用于客户端ID(索引)的组合框,用于处理该客户端案例的人员的下拉列表,以及用于添加新客户端的按钮(标准的Access创建的“添加记录”按钮) 。这些操作列在这三个元素下面的子表单中。
我遇到的问题是,我测试过的第一个人点击按钮添加新记录,然后没有填写它并尝试从下拉列表中选择另一个客户端。 Access将此解释为尝试将所选客户端ID设置为新记录的ID,并正确地为重复主键引发错误。我可以想办法解决这个问题,但我更倾向于听到你优雅的解决方案,而不是用一种我不知道的语言将一些垃圾粘在一起。
如果您有任何疑问,请与我们联系。谢谢。
答案 0 :(得分:2)
不要使用相同的控件进行数据输入和导航。肯定会混淆。创建一个文本框,用于输入新的客户端ID并更改组合,以便它不再绑定到客户端ID字段(列)。
答案 1 :(得分:1)
许多人似乎错过了一个关键的用户界面原则:
不要让用户做你不希望他们做的事情。
现在,根据您的描述,我同意@Remou您需要单独的组合框,一个用于导航,一个用于分配客户端。
但是如果由于某种原因你确实需要按照你的描述进行操作,关键是在保存记录之前禁用客户端组合框。因此,在“添加新命令”按钮后面的代码中,您将组合框的.Enabled属性设置为false。在表单的AfterInsert事件中,您将其设置回True。
这个想法只是让用户无法做错事。
听起来很简单,但它比听起来要难得多,因为作为程序员,你几乎总是有一个透视图,阻止你以与用户相同的方式看到你的用户界面。这就是为什么我总是说在任何一个应用程序中都有很多bug,因为有些用户尚未尝试过。