如何显示列表框中链接到下拉列表的所有项目

时间:2015-06-19 08:14:01

标签: ms-access-2010

在Access Userform中,我有一个链接到下拉字段的列表框。在下拉字段中,用户可以选择一个国家/地区,然后列表框会更新并仅显示与该国家/地区相关的记录。

我已经描述了如何根据此问题here下拉列表中的选择过滤列表框。

虽然我设法在那里解决了一个问题,但我创造了另一个问题。

现在,当我打开表单时,列表框为空,而不是显示所有记录。

我的问题:如何在列表框中显示所有记录,然后让用户根据下拉列表过滤列表?

LIstbox中的SQL代码现在如下:

SELECT tblFUNDS.MorningsStar_Fund_Name, tblFUNDS.ISIN, tblFUNDS.RDR, tblISIN_Country_Table.Country
FROM tblFUNDS INNER JOIN tblISIN_Country_Table ON tblFUNDS.ISIN = tblISIN_Country_Table.ISIN
GROUP BY tblFUNDS.MorningsStar_Fund_Name, tblFUNDS.ISIN, tblFUNDS.RDR, tblISIN_Country_Table.Country, tblFUNDS.Fund_Selection
HAVING (((tblISIN_Country_Table.Country)=[Forms]![frmMain]![ddnCountry].[Text]) AND ((tblFUNDS.Fund_Selection)=0));

1 个答案:

答案 0 :(得分:0)

所以我最终也解决了这个问题......在网上发表文章的帮助下,我现在再也找不到了(不过我会在这里引用):

SELECT tblFUNDS.MorningsStar_Fund_Name, tblFUNDS.ISIN, tblFUNDS.RDR, tblISIN_Country_Table.Country
FROM tblFUNDS INNER JOIN tblISIN_Country_Table ON tblFUNDS.ISIN = tblISIN_Country_Table.ISIN
GROUP BY tblFUNDS.MorningsStar_Fund_Name, tblFUNDS.ISIN, tblFUNDS.RDR, tblISIN_Country_Table.Country, tblFUNDS.Fund_Selection
HAVING (((tblISIN_Country_Table.Country) Like Nz([Forms]![frmMain]![ddnCountry].[Text],'*')) AND ((tblFUNDS.Fund_Selection)=0));

重要的是这个......

Like Nz([Forms]![frmMain]![ddnCountry].[Text],'*')) AND ((tblFUNDS.Fund_Selection)=0));

本质上,Nz函数允许您在变量为null时返回值。我让它返回*当然是返回全部的SQL等价物。