如何指定一列来填充 Excel 组合框?
How can I specify a column to fill an Excel Combobox?
第一次在这里提问,如有不便,敬请谅解。
我一直在尝试用数据库过程的结果集填充 Excel Sheet 中的 ComboBox。到目前为止,我已经正确地收到了结果集,但是当我尝试指定我想用来设置组合框值的列(响应的第 3 列)时,它会继续使用 id(第 1 列),甚至当我按如下方式使用 .BoundColumn 命令时:
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "mySP"
Set rst = cmd.Execute()
With rst
i = .Fields.Count
vData = .GetRows
End With
With Sheet1
With .ComboBoxP
.Clear
.BoundColumn = 3
.List = Application.Transpose(vData)
.ListIndex = -1
End With
.ComboBoxP.Text = "-- Pick one --"
End With
命令顺序是否有问题导致代码始终使用同一列?可能是 Excel 版本问题(我在西班牙语中使用 MS Excel 2010)?
您应该使用 TextColumn
属性 来设置向用户显示的值。 BoundColumn
属性 设置您的代码在用户做出选择后读取控件的值 属性 时获取的值。
第一次在这里提问,如有不便,敬请谅解。 我一直在尝试用数据库过程的结果集填充 Excel Sheet 中的 ComboBox。到目前为止,我已经正确地收到了结果集,但是当我尝试指定我想用来设置组合框值的列(响应的第 3 列)时,它会继续使用 id(第 1 列),甚至当我按如下方式使用 .BoundColumn 命令时:
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "mySP"
Set rst = cmd.Execute()
With rst
i = .Fields.Count
vData = .GetRows
End With
With Sheet1
With .ComboBoxP
.Clear
.BoundColumn = 3
.List = Application.Transpose(vData)
.ListIndex = -1
End With
.ComboBoxP.Text = "-- Pick one --"
End With
命令顺序是否有问题导致代码始终使用同一列?可能是 Excel 版本问题(我在西班牙语中使用 MS Excel 2010)?
您应该使用 TextColumn
属性 来设置向用户显示的值。 BoundColumn
属性 设置您的代码在用户做出选择后读取控件的值 属性 时获取的值。