在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));
答案 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等价物。