我想从Excel Vba(使用ADODB)查询数据库,并用检索到的值列表填充组合框。不幸的是,下拉列表字段中仅显示返回列表的最后一个值。我假设记录集是所有返回的行的完整字符串,因此只有最后一个可见。
我搜索了该主题,但只能找到有关access的信息,这似乎无济于事。
这应该是代码的重要部分,如果需要,我可以提供更多信息:
'-- Create database query
SQLStatement = "SELECT Project_Name FROM ressourceplanning.projects"
'-- Execute query
Recordset.Open SQLStatement,Connection
'-- Write report into combobox (dropdown)
Recordsetarray = Recordset.GetRows
UF_Delete_Project.Cb_DeleteProject.List = Recordsetarray
'UF_Delete_Project.Cb_DeleteProject.RowSourceType = Recordsetarray
使用时,最后一行会导致umatching类型(错误13)。但是到目前为止,我发现的最好的答案是使用“ RowSourceType”。
Recordset包含正确的值,因此DB Connection和查询本身就可以正常工作,它仅与记录集的填充有关。
下面的代码对我有用:
Recordsetarray = Recordset.GetRows
For i = LBound(Recordsetarray,2) To UBound(Recordsetarray,2)
UF_Delete_Project.Cb_DeleteProject.AddItem Recordsetarray(0,i)
Next i
感谢@braX和@FunThomas