访问表单级联组合框在下拉菜单中没有显示任何内容



我正在尝试使用级联组合框创建一个数据输入表,以限制用户选项。我让它工作了一段时间,然后决定退出。不过,我可能会过度思考这一切。

我将必须设置约50个盒子。第一个是一对。我得到了第一个可以正确添加到新记录中的框。当我进入第二个ComboBox时,下拉菜单什么也没显示。这很好,直到我输入[forms]![newspecform]![cboboxsize]在标准中。如何创建级联的组合盒,这些组合盒实际上将永久工作?

我的第三个组合框是很多到很多,所以我为此创建了一个交界表。我找到了几个有关如何加入表格级联组合的教程,一旦我有效,第一个和第二个框就不会在新记录中添加正确的信息。

如果我独自留下后努力并独自拥有第二个框,它将ID添加到新记录中而不是名称。我该如何解决?

首先,让我们确保我们理解"级联组合框"背后的概念。逻辑运行的方式使您从Combo1进行选择后,Combo2中可用的选项将更改,因此它们仅是与Combo1相关的项目。同样,在我们从Combo2中选择一个项目后,Combo3中的项目仅是与用户在Combo2中选择的项目。

因此,首先,除了Combo1之外,每个组合框都应该为空,或者应与Combo1的默认值有关。您可以做任何一种。

接下来,在Combo1的添加时间事件中,您应该有类似的东西:

Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
                           "FROM tblMyTable " & _
                           "WHERE SomeID = " & Nz(Me.cboCombo1) & _  
                           "ORDER BY SomeValue"
Me.cboCombo2.Requery

显然,myfieldnames,tblmytable和所有其他值都取决于您实际寻找的内容,源表/查询名称和字段名称等...

好吧,现在Combo2应该填充仅与您在Combo1中选择的数据,因为我们将Combo1用作上述SQL中的过滤器。

如果看起来还不错,则为Combo3做一个或多或少的完全相同的事情。您可能需要对两个组合的值过滤,或者您可以在Combo2中使用该值,具体取决于您的数据集。

泡沫,冲洗,重复。我想如果您有50个连击,您将需要做50次,但这就是这样做的。

有关更多参考,请参见本文:http://www.fmsinc.com/microsoftaccess/forms/combo-boxes/cascading.html

最新更新