访问VBA:如何计算ComboBox的项目?

时间:2017-12-21 11:12:36

标签: ms-access combobox count access-vba selection

在我的ComboBox我已经选择了一些项目。

我想用VBA计算它们。我期待找到类似下面的字符串,但我得到Compile error: Argument not optional

Me.<ComboBox_name>.ItemData.Count

我还想过使用以下字符串,但它给了我0项:

Me.<ComboBox_name>.ItemSelected.Count

enter image description here

2 个答案:

答案 0 :(得分:2)

组合框通常用于选择或显示单个项目的选择,而列表框自然支持多个选项。

也就是说,如果您将多值*表字段链接到Combobox,则可以使用具有多个选择的Combobox。如果是这种情况,那么值.ItemsSelected属性中唯一可用的时间是Combobox具有焦点并且被删除。

解决此问题的方法是将Combobox的.Value属性分配给数组。该数组将包含所选的值。您可以通过获取数组的上限并添加1来计算它们:

Dim comboitems() as Variant
Dim count as Long

comboitems = yourcombobox.Value

' array is 0-based so add one to get the count
count = UBound(comboitems) + 1

如果数组是多维的,则以这种方式读取值:

' array is 0-based so add one to get the count
count = UBound(comboitems, [dimension]) + 1

' where [dimension] is a 1-based index equivalent to the 'column' of the data

我希望有所帮助!

  

*注意:多值字段通常是不明智的,因为它们很差   Access支持,通常意味着你应该正常化你的   表,即将多值字段分成另一个表。

答案 1 :(得分:1)

要计算选项,它是:

Me!<ComboBox_name>.ListCount

或准确地说,如果您使用列标题:

Me!<ComboBox_name>.ListCount - Abs(Me!<ComboBox_name>.ColumnHeads)