Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 我想链接到access 2007中的下拉列表_Ms Access_Ms Access 2007 - Fatal编程技术网

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
我倾向于使用后一种方法,因为除了过滤到第一个组合框之外,我还经常需要做其他事情,但对于大多数人来说,使用第一种方法可能更容易