举个例子,让我们用食物。
表:食物
ID || Type || Name
1 || Fruit || Apple
2 || Fruit || Orange
3 || Veggie || Pea
4 || Veggie || Corn
组合框1: TypeCB
行源(SQL):
SELECT DISTINCT
Count([Food].ID) AS CountOfID,
[Food].Type
FROM [Food]
ORDER BY [Food].Type;
(我使用“CountofID”的原因是获取唯一的Type值,否则它们会被重复,因为ID是唯一的)
现在这适用于第一个,但是,当我尝试将值拉到我的下一个ComboBox时,第二个组合框保持为空。在第一个组合框填充的情况下刷新表单并不能解决问题。
Combobox 2: NameCB
行源(SQL):
SELECT
Count([Food].ID) AS CountOfID,
[Food].Name
FROM [Food]
HAVING ((([Food].Type)=[Forms]![Food Form]![TypeCB].[SelText]));
是否有其他/更好的方法来获取此数据?
答案 0 :(得分:1)
您在TypeCB的行来源中不需要Count
,因为您只使用了“类型”列。如果你保留它,请确保TypeCB的Bound Column
属性设置为2,这样组合框的值将从Type列而不是CountOfID中获取。
您的NameCB行来源正常,但[SelText]属性除外。改变它:
SELECT
Count([Food].ID) AS CountOfID,
[Food].Name
FROM [Food]
HAVING ((([Food].Type)=[Forms]![Food Form]![TypeCB]));
如果TypeCB组合框的Bound Column
属性设置为具有Type值的列,则可以引用控件本身来获取值。
在TypeCB组合框的After Update
事件中,添加NameCB.Requery()
以刷新NameCB组合框。