问题描述
我最初在表单中将我的组合框 cbSortOrder 定义为固定值列表。我现在尝试使用数组在 VBA 代码中设置它。我曾尝试使用变体和字符串数组,但认为我的问题与此无关,而是与组合框定义有关。
尝试在 With 语句中设置这些值时,出现对象不支持方法错误。
解决方法
很遗憾,您不能在 Access 中使用集合作为行源。 Value List
的行源类型是指以逗号(或分号)分隔的文本(取决于 Windows 中的列表分隔符设置)。
如果您不想使用这样的值列表,请使用 Table/Query
的行源类型并指定表或查询名称。您也可以直接在此字段中插入 SELECT 语句。
这也意味着,您必须将此行源类型的条目存储在表中。您也可以使用本地表代替后端的表。
此外,ComboBox
没有 List
属性。请改用 RowSource
属性。在表单后面的代码中,您可以省略 Forms("formName")
部分。
With cbSortOrder
.RowSourceType = "Table/Query"
.RowSource = "SELECT Id,Description FROM tlkpSortOrder ORDER BY Description"
End With
或
With cbSortOrder
.ColumnCount = 2 ' If you have and id and a text
.ColumnWidths = "0" ' Hides the Id column
.RowSourceType = "Value List"
.RowSource = "1,Ascending,2,Descending,3,Undefined"
End With