[英]Excel VBA Fill Combo Box With Data From SQL Query
我正在寻找有关如何使用VBA从SQL派生的数据填充组合框/列表框的建议。
Sub RunSELECT()
Dim cn As Object, rs As Object, output As String, sql As String
'---Connecting to the Data Source---
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = ""
.Open
End With
'---Run the SQL SELECT Query---
sql = "SELECT DISTINCT i.* FROM tblITEMS i INNER JOIN tblITEM_ATTRIBUTE_VALUES iav1 on i.PART_NO = iav1.PART_NO and i.REV = iav1.rev and iav1.ATTRIBUTE_NAME = 'Item' AND iav1.ATTRIBUTE_VALUE = 'X100' INNER JOIN tblITEM_ATTRIBUTE_VALUES iav2 on i.PART_NO = iav2.PART_NO and i.REV = iav2.rev and iav2.ATTRIBUTE_NAME = 'Item Name' AND iav2.ATTRIBUTE_VALUE = 'Variable' ORDER BY i.PART_NO, i.REV"
Set rs = cn.Execute(sql)
Do
output = output & rs(0) & ";" & rs(1) & ";" & rs(2) & vbNewLine
Debug.Print rs(0); ";" & rs(1) & ";" & rs(2)
rs.MoveNext
Loop Until rs.EOF
MsgBox output
'---Clean up---
rs.Close
cn.Close
Set cn = Nothing
Set rs = Nothing
End Sub
上面创建了一个有效的msgbox,并向我提供了信息。 我可以将此“输出”导出到一个单元格,但单元格内容应填写多个单元格,而不仅仅是一个。
如何更改代码以将“输出”导出到多个单元格(根据需要)或组合/列表框中?
提前加油
若要输出到组合框或列表框,请替换此部分:
Do
output = output & rs(0) & ";" & rs(1) & ";" & rs(2) & vbNewLine
Debug.Print rs(0); ";" & rs(1) & ";" & rs(2)
rs.MoveNext
Loop Until rs.EOF
有了这个:
listboxname.Column = rs.GetRows
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.