我在Excel VBA中有一个组合框,它只显示一条记录,但它应该显示7.我已经对代码进行了调试,我可以看到例程如何通过代码分配列表中的所有条目,但只有一条显示。
有人能告诉我我错过了什么。
SqlSelect = "SELECT distinct [country] FROM [Data]" 'there are 7 records returned in this query
Set AdoRst = New ADODB.Recordset
AdoRst.Open SqlSelect, WfmDbCn, adOpenForwardOnly, adLockReadOnly, adCmdText
With Me.cmbCountry
.ColumnCount = 1
.ColumnWidths = "0;0;150"
.BoundColumn = 1
Do Until .ListCount = 0
.RemoveItem (0)
Loop
i = 0
Do While Not AdoRst.EOF
.AddItem AdoRst.Fields(0).Value
.List(i, 1) = AdoRst.Fields(0)
i = i + 1
AdoRst.MoveNext
Loop
If .ListCount > 0 Then
.ListIndex = 0
Else
.Value = Null
End If
End With
由于
答案 0 :(得分:2)
问题在于:
.ColumnCount = 1
.ColumnWidths = "0;0;150"
您只声明一列,然后设置宽度为3.如果您这样调整:
.ColumnCount = 2
.ColumnWidths = "150;0"
它应该工作。 Boundcolumn
在这里并不是真的有用。 .AddItem
为第1列添加了值; .List(i, 1)
为第2列添加了一个值。