0

我正在开发一个简单的 Access 2003 应用程序来跟踪一些同事需要为客户完成的事情。每个同事都有一组客户,每个客户都有一组需要在某个日期之前采取的行动。我已经设置了一个表单,其中包含一个用于客户端 ID(索引)的组合框、一个用于处理该客户端案例的人的下拉列表,以及一个用于添加新客户端的按钮(一个标准的 Access 创建的添加记录按钮) . 这些操作在这三个元素下方的子表单中列出。

我遇到的问题是我测试这个的第一个人点击按钮添加新记录,然后没有填写并尝试从下拉列表中选择另一个客户端。Access 将此解释为尝试将选定的客户端 ID 设置为新记录的 ID,并正确地抛出重复主键的错误。我可以想出几种方法来解决这个问题,但我更愿意听听你的优雅解决方案,而不是用我不知道的语言拼凑一些垃圾。

如果您有任何问题,请告诉我。谢谢你。

4

2 回答 2

2

不要对数据输入和导航使用相同的控件。肯定会混淆。创建一个用于输入新客户端 ID 的文本框并更改组合,使其不再绑定到客户端 ID 字段(列)。

于 2010-04-06T08:37:20.140 回答
1

许多人似乎忽略了一个关键的用户界面原则:

不要让用户做你不希望他们做的事情。

现在,就您而言,根据您对事物的描述方式,我同意@Remou 的观点,即您需要单独的组合框,一个用于导航,一个用于分配客户端。

但是如果由于某种原因你真的需要做你描述的事情,关键是禁用客户端组合框,直到记录被保存。因此,在添加新命令按钮后面的代码中,您将组合框的 .Enabled 属性设置为 false。在表单的 AfterInsert 事件中,您将其设置回 True。

这个想法只是让用户不可能做错事。

听起来很简单,但做起来比听起来要困难得多,因为作为程序员,您几乎总是有一个视角,阻止您以与用户相同的方式查看您的用户界面。这就是为什么我总是说,在任何应用程序中,待发现的错误与尚未尝试过的用户一样多。

于 2010-04-08T02:48:54.443 回答