从动态 sql 结果中填充用户窗体上的组合框
Populating combobox on userform from dynamic sql results
我有一个带有 2 个组合框的简单用户表单。第一个包含 2 SQL 个服务器的选择。第二个应包含由查询填充的所选服务器的数据库列表 - 这目前不起作用。
我可以将记录集中的数据复制到工作簿中的 sheet,但不能复制到组合框中。
之前我通过循环遍历 xlveryhidden sheet 上的值来填充组合框没有问题:
For i = 1 to i = LastRow
UserForm1.ComboBox2.AddItem Range("A" & i)
next i
到目前为止,这是我从记录集中复制数据的尝试:
Dim i As Integer
Do Until i = rst.RecordCount
UserForm1.ComboBox2.AddItem rst.getrows(1, i)
i = i + 1
Loop
出现类型不匹配错误。不确定我是否在正确的轨道上。
有谁知道如何使用位于记录集中的 sql 查询的结果填充组合框?非常感谢任何帮助。
不需要循环:
If Not rst.EOF then Me.ComboBox2.Column = rst.getrows()
应该足以将整个记录集放入控件中。 GetRows returns 一个从您可能期望的方式转置的数组,这就是我使用 .Column 而不是 .List
的原因
我有一个带有 2 个组合框的简单用户表单。第一个包含 2 SQL 个服务器的选择。第二个应包含由查询填充的所选服务器的数据库列表 - 这目前不起作用。
我可以将记录集中的数据复制到工作簿中的 sheet,但不能复制到组合框中。
之前我通过循环遍历 xlveryhidden sheet 上的值来填充组合框没有问题:
For i = 1 to i = LastRow
UserForm1.ComboBox2.AddItem Range("A" & i)
next i
到目前为止,这是我从记录集中复制数据的尝试:
Dim i As Integer
Do Until i = rst.RecordCount
UserForm1.ComboBox2.AddItem rst.getrows(1, i)
i = i + 1
Loop
出现类型不匹配错误。不确定我是否在正确的轨道上。
有谁知道如何使用位于记录集中的 sql 查询的结果填充组合框?非常感谢任何帮助。
不需要循环:
If Not rst.EOF then Me.ComboBox2.Column = rst.getrows()
应该足以将整个记录集放入控件中。 GetRows returns 一个从您可能期望的方式转置的数组,这就是我使用 .Column 而不是 .List
的原因