Ms access 我想链接到access 2007中的下拉列表
我正在尝试创建一个包含多个类别和子类别的表单 我是否有办法在第一个下拉列表(主类别)中选择的内容与第二个下拉列表(子类别)中显示的内容之间建立关系 我不想一次列出所有的子类别。我只想要那些与主类别中选定的指定类别相关的Ms access 我想链接到access 2007中的下拉列表,ms-access,ms-access-2007,Ms Access,Ms Access 2007,我正在尝试创建一个包含多个类别和子类别的表单 我是否有办法在第一个下拉列表(主类别)中选择的内容与第二个下拉列表(子类别)中显示的内容之间建立关系 我不想一次列出所有的子类别。我只想要那些与主类别中选定的指定类别相关的 谢谢 这是最常见的访问问题之一 方法1:在第二个组合框的WHERE子句中,使用对第一个组合框的引用作为标准: PARAMETERS [Forms]![MyForm]![cmbCategories] Long; SELECT SubCategory FROM tblSu
谢谢 这是最常见的访问问题之一 方法1:在第二个组合框的WHERE子句中,使用对第一个组合框的引用作为标准:
PARAMETERS [Forms]![MyForm]![cmbCategories] Long;
SELECT SubCategory
FROM tblSubCategories
WHERE CategoryID = [Forms]![MyForm]![cmbCategories]
ORDER BY SubCategory;
(在97之后的Access版本中,将控件引用定义为参数非常重要,因为这些版本的Access与97之前的Access处理空值的方式不同)
然后,在第一个组合框的AfterUpdate事件中,重新查询第二个:
Private Sub cmbCategories_AfterUpdate()
Me!cmbSubCategories.Requery
End Sub
方法2:不要硬连接第二个组合框的行源以包含对第一个的引用,而是在第一个组合框的更新后动态写入其行源:
Private Sub cmbCategories_AfterUpdate()
Dim strRowsource As String
strRowsource = "SELECT SubCategory FROM tblSubCategories WHERE CategoryID = "
strRowsource = strRowsource & Me!cmbCategories
strRowsource = strRowsource & " ORDER BY SubCategory;"
Me!cmbSubCategories.Rowsource = strRowsource
End Sub
我倾向于使用后一种方法,因为除了过滤到第一个组合框之外,我还经常需要做其他事情,但对于大多数人来说,使用第一种方法可能更容易