从动态sql结果中填充userform上的组合框

时间:2015-01-28 13:14:30

标签: sql-server excel-vba combobox adodb recordset

我有一个带有2个组合框的简单用户表单。第一个包含2个SQL服务器的选择。第二个应该包含由查询填充的所选服务器的数据库列表 - 这当前不起作用。

我可以将记录集中的数据复制到工作簿中的工作表中,但不能复制到组合框中。

以前我通过循环遍历xlveryhidden表上的值来填充组合框,没有问题:

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查询的结果填充组合框?任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

没有必要循环:

If Not rst.EOF then Me.ComboBox2.Column = rst.getrows()

应该足以将整个记录集放入控件中。 GetRows返回一个从你期望的方式转换的数组,这就是为什么我使用.Column而不是.List