首页 > 解决方案 > 列表框无法显示基于另一个列表的项目

问题描述

我目前正在尝试设置一个 GUI 前端,以便更轻松地查询同事。

我已经尝试研究并遵循各种来源的说明,但仍然无法使其工作。

我有两个清单。

1)这是第一个列表(List0)的行源查询:

SELECT Test_Case_ID.Test_Case_Unique_ID, Test_Case_ID.Test_Case_Description
FROM Test_Case_ID
ORDER BY Test_Case_ID.[Test_Case_Description];

2)这是第二个列表(List2):

SELECT Reference_ID.Reference
FROM Test_Case_ID INNER JOIN (Reference_ID INNER JOIN Test_Result 
    ON Reference_ID.Reference_Unique_ID = Test_Result.Reference_Unique_ID) 
ON Test_Case_ID.Test_Case_Unique_ID = Test_Result.Test_Case_Unique_ID
WHERE (((Test_Case_ID.Test_Case_Description)=[Forms]![Form1]![List0]));

我有一个 List0 的事件过程:

Private Sub List0_AfterUpdate()
Forms![Form1]![List2].Requery
End Sub

但是,即使单击 List0 中的项目,List2 上也没有输出。我可以给一些建议来解决它吗?谢谢

标签: ms-access

解决方案


首先,检查列表框的绑定列List0是否与您的字段相对应Test_Case_Description

打开表单并填充数据后,您还可以通过创建包含列表框行源的 SQL 的单独查询并验证它是否返回任何结果来“手动”运行许多测试:

select 
    reference_id.reference
from 
    test_case_id inner join 
    (
        reference_id inner join test_result 
        on reference_id.reference_unique_id = test_result.reference_unique_id
    ) 
    on test_case_id.test_case_unique_id = test_result.test_case_unique_id
where 
    test_case_id.test_case_description = [forms]![form1]![list0]

您还可以使用带有以下 SQL 代码的查询来测试[forms]![form1]![list0]返回的值,并确保它返回您期望在选择条件中使用的值:

select 
    t.test_case_description,
    [forms]![form1]![list0] as listboxvalue,
    t.test_case_description = [forms]![form1]![list0] as testmatch
from 
    test_case_id t

推荐阅读