如何显示无法选择的组合框选项

时间:2015-11-19 01:16:12

标签: ms-access

我有一个绑定到字段[选定任务ID]的组合框([TaskID])。 [任务ID]的行源来自一个表,包括[任务ID]和[任务名称],仅限于[活动](该表中的另一个字段)= True的条目。由于[任务ID]是要在[所选任务ID]字段中输入的值,因此将其设置为绑定列。但是,由于没有人需要查看[任务ID](它只是一个自动编号)的值,因此列数设置为2,宽度设置为0“; 2”。 今天有两个任务,[Active]标志设置为True,我有不同的记录,其中[Selected Task ID]字段是这两个任务中的一个或另一个。在表单上,​​它看起来像:

            Task Name 
Record 1:    Task 1
Record 2:    Task 2

明天,任务1将不再处于活动状态(即,您无法再为其分配时间)。我仍然希望能够看到记录1显示“任务1”(因为它的[任务ID]存储在[所选任务ID]字段中),但我不希望能够选择< / em>任务1了。但是,当任务1的[Active]设置为False时,表单字段上的 display 为空白:

            Task Name 
Record 1:
Record 2:    Task 2

(请记住,组合框用于显示和设置该字段的数据。)查看数据表本身,确实存储了任务ID,但未显示与其关联的名称(大概是因为由于[Active]标志被设置为No而被排除在组合框选项之外。

如何只显示以前有效条目的值,而只启用当前有效条目的选择?

1 个答案:

答案 0 :(得分:1)

  1. 您可以创建两个组合框:一个用于数据显示而不过滤非活动元素,第二个用于数据选择,具有过滤功能。将显示控制放在选择一上,并将代码添加到显示控件的GotFocus事件:

    Me.cboSelect.SetFocus
    Me.cboSelect.Dropdown
    

    现在有效和无效的条目将始终可见,但用户无法从下拉列表中选择无效行。如果单击该字段,此变通方法的缺点是无效条目的值将消失。

  2. 您可以使用活动指示符向行源查询添加第三列,首先按活动字段对列表进行排序,以便将非活动元素移动到列表末尾,并将代码添加到组合框的Before Update事件中,这不允许用户选择包含非活动元素的行。