如何修复 VBA 中的 MS Access 表单组合框错误
How to fix MS Access Form Combobox error in VBA
我最初在表单中将组合框 cbSortOrder 定义为固定值列表。我现在正尝试使用数组在 VBA 代码中设置它。我尝试过使用变体和字符串数组,但认为我的问题与此无关,而是与组合框定义有关。
尝试在 With 语句中设置这些值时,出现“对象不支持方法”错误。
我附上了我的组合框的实际错误和属性的屏幕截图。
遗憾的是,您不能在 Access 中将集合用作行源。 Value List
的行源类型引用逗号(或分号)分隔的文本(取决于 Windows 中的列表分隔符设置)。
如果您不想使用这样的值列表,请使用 Table/Query
的行源类型并指定 table 或查询名称。您也可以直接在此字段中插入 SELECT 语句。
这也意味着,您必须将此行源类型的条目存储在 table 中。您还可以在后端使用本地 table 而不是 table。
此外,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
我最初在表单中将组合框 cbSortOrder 定义为固定值列表。我现在正尝试使用数组在 VBA 代码中设置它。我尝试过使用变体和字符串数组,但认为我的问题与此无关,而是与组合框定义有关。
尝试在 With 语句中设置这些值时,出现“对象不支持方法”错误。
我附上了我的组合框的实际错误和属性的屏幕截图。
遗憾的是,您不能在 Access 中将集合用作行源。 Value List
的行源类型引用逗号(或分号)分隔的文本(取决于 Windows 中的列表分隔符设置)。
如果您不想使用这样的值列表,请使用 Table/Query
的行源类型并指定 table 或查询名称。您也可以直接在此字段中插入 SELECT 语句。
这也意味着,您必须将此行源类型的条目存储在 table 中。您还可以在后端使用本地 table 而不是 table。
此外,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