Excel 将SQL查询链接到UserForm ComboBox,数据可以';不可采摘
我一直在网上寻找用SQL查询中的数据填充UserForm(Excel)中的组合框的代码示例,并遇到以下问题: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
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
中设置之前运行-您必须对该语句的副作用表示满意命中数据库;-)