组合框仅显示一条记录

时间:2014-06-10 10:00:06

标签: excel vba combobox

我在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

由于

1 个答案:

答案 0 :(得分:2)

问题在于:

.ColumnCount = 1 
.ColumnWidths = "0;0;150"

您只声明一列,然后设置宽度为3.如果您这样调整:

.ColumnCount = 2 
.ColumnWidths = "150;0"

它应该工作。 Boundcolumn在这里并不是真的有用。 .AddItem为第1列添加了值; .List(i, 1)为第2列添加了一个值。