MS Access中的Combobox

时间:2017-01-26 17:09:16

标签: vba ms-access

我正在尝试使用MS Access VBA中的以下代码填充下拉列表

strSQL = "Select BankID, BankName from tblBank"
Me.cmbBank.RowSource = strSQL
BoundColumn = 2
Me.cmbBank.Requery

但是这显示了BankID记录而没有显示BankName。我错过了什么吗?有没有办法显示请选择Bank,其值为-1?

1 个答案:

答案 0 :(得分:2)

是的,您缺少列数和列宽属性,因此请确保正确设置这些属性。以下代码隐藏BankId(列宽= 0)。如果要同时显示两者,只需将0更改为1. 编辑以将提示显示为列表的标题,以下内容将起作用,但需要修改sql字符串以更改列名。您可能需要调整列宽值,以便显示整个标题:

strSQL = "Select BankID, BankName As [Please Select Bank] from tblBank"
With Me.cmbBank
  .RowSource = strSQL
  .ColumnCount = 2
  .BoundColumn = 2
  .ColumnWidths = "0in.;1in."
  .ColumnHeads = True
  .Requery
End With

如果您不喜欢标题,可以使用带有组合框旁边的静态字符串的标签对象。

编辑2: 如果要在列表打开之前在组合框中显示标题,我认为唯一的选择是强制组合框中的值,这意味着LimitToList属性必须设置为false。不幸的是,这使用户输入无效并可以随意输入任何内容。以下是如何运作的:

strSQL = "Select BankID, BankName As [Please Select Bank] from tblBank"
With Me.cmbBank
  .RowSource = strSQL
  .ColumnCount = 2
  .BoundColumn = 2
  .ColumnWidths = "0in.;1in."
  .ColumnHeads = True
  .LimitToList = False
  .Requery
  .Value = "Please Select Bank"
End With

MSDN Column Count

MSDN Column Width