我一直在微软,Stackoverflow,techinthenet.com和其他几个网站上搜索这个问题,没有我能找到的真正解决方案。
我正在尝试根据cboTrainee_Name的选择来填充两个组合框(cboCourse和cboVols)。第一个组合框的代码是:
SELECT DISTINCT [qryBooks].[PName] FROM qryBooks WHERE qryBooks.Complete=No ORDER BY [qryBooks].[PName];
我搜索过的每个地方都会提供帮助和样本来填充第一个组合框,然后根据第一个组合框中选择的内容填充第二个组合框。我需要cboCourse和cboVols来填充基于相同查询的结果。到目前为止我所拥有的是:
Private Sub cboTrainee_Name_AfterUpdate()
cboCourse.RowSource = "SELECT DISTINCT [qryBooks].[Book] FROM qryBooks WHERE [qryBooks].[PName]=[Forms]![frmIntro]![cboTrainee_Name] ORDER BY [qryBooks].[Book];"
cboVol.RowSource = "SELECT DISTINCT [qryBooks].[Vols] FROM qryBooks WHERE [qryBooks].[PName]=[Forms]![frmIntro]![cboTrainee_Name] ORDER BY [qryBooks].[Vols];"
End Sub
这适用于cboCourse,但cboVols不会填充。我知道必须有一个简单的解释。有什么建议吗?
ADDED!我使用SELECT DISTINCT,因为查询中的每一列都包含相同数据的多个实例。
答案 0 :(得分:0)
我没有看到您的SQL存在任何问题。
您可能需要在两个组合框上调用Requery方法,以便在更改cboTrainee_Name后刷新它们:
cboCourse.Requery
cboVol.Requery
请注意,您不必在代码中设置RowSource属性以使其正常工作。您应该能够像在RowSource属性中一样插入SQL语句,并且只能在cboTrainee_Name组合框的AfterUpdate事件中的依赖组合框上插入Requery方法。