2017-01-26 80 views
0

我试图用填充下面的代码下拉列表中的MS Access VBA组合框在MS Access

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

,但是这表明BankID记录并没有显示BANKNAME。我错过了什么?有什么方法可以显示请选择银行的价值绑定为-1?

回答

1

是的,您错过了列数和列宽属性,因此请确保这些属性已正确设置。以下代码隐藏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属性必须设置为假。不幸的是,这使用户输入未经验证,可以随意输入任何他们想要的内容。下面是如何将工作:

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

+0

你失踪'结束With'。你能否告诉房产名称用于显示请选择银行? – Pankaj

+0

对不起。尝试一下。您可以使用'ColumnHeads'属性在列表顶部显示列名,但我不清楚这是否是您想要的。 – MoondogsMaDawg

+0

有什么方法可以停止在组合框中输入文本? – Pankaj