Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将SQL查询链接到UserForm ComboBox,数据可以';不可采摘_Excel_Vba - Fatal编程技术网

Excel 将SQL查询链接到UserForm ComboBox,数据可以';不可采摘

Excel 将SQL查询链接到UserForm ComboBox,数据可以';不可采摘,excel,vba,Excel,Vba,我一直在网上寻找用SQL查询中的数据填充UserForm(Excel)中的组合框的代码示例,并遇到以下问题: Private Sub DieSearch_DropButtonClick() 'Declare Variables Dim cnt As ADODB.Connection Dim rst As ADODB.Recordset Dim stDB As String, stConn As String, stSQL As String 'Set database connection

我一直在网上寻找用SQL查询中的数据填充UserForm(Excel)中的组合框的代码示例,并遇到以下问题:

Private Sub DieSearch_DropButtonClick()

'Declare Variables
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stDB As String, stConn As String, stSQL As String

'Set database connection string. This connects excel with SQL database
Set cnt = New ADODB.Connection

    stConn = "driver={SQL Server};server=server;database=SQL;uid=ID;pwd=ABCD"

With cnt
    .Mode = adModeRead
    .CursorLocation = adUseClient
    .ConnectionString = stConn
    .Open
End With

Set rst = New ADODB.Recordset

'SQL Query statement
    stSQL = " select distinct [inv] from [SQL].[dbo].[ENTRY] order by [Inv]"

    rst.Open stSQL, cnt
    DieSearch.Clear

Do While Not rst.EOF
    DieSearch.AddItem rst(0)
    rst.MoveNext
Loop

'Release objects from memory.
rst.Close
    Set rst = Nothing
cnt.Close
    Set rst = Nothing

End Sub
这是我的代码,我更改了登录字符串和SQL查询。测试时,我发现尽管组合框可以显示数据,但我无法选择其中任何一个。我仍然可以在框中键入,但无法从列表中选择


我遗漏了什么吗?

是否调用了处理程序?FWIW除非需要包含参数,否则应在激活表单时仅运行该查询并填充组合框一次,而不是每次点击dropbutton。不敢相信我没有想到将代码放入
Userform\u Initialize
…请记住,
Initialize
处理程序在
foo
引用在
set foo=New MyForm
中设置之前运行-您必须对该语句的副作用表示满意命中数据库;-)