Vba MS Access中的组合框

Vba MS Access中的组合框,vba,ms-access,Vba,Ms Access,我正在尝试使用MS Access VBA中的以下代码填充下拉列表 strSQL = "Select BankID, BankName from tblBank" Me.cmbBank.RowSource = strSQL BoundColumn = 2 Me.cmbBank.Requery 但这会显示BankID记录,而不显示BankName。我遗漏了什么吗?是否有任何方法显示请选择值绑定为-1的银行?是的,您缺少列计数和列宽属性,因此请确保这些属性设置正确。以下代码隐藏BankId(列宽=0

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

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

但这会显示BankID记录,而不显示BankName。我遗漏了什么吗?是否有任何方法显示请选择值绑定为-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
如果不喜欢标题,可以在组合框旁边使用带有静态字符串的label对象

编辑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


是的,您缺少列计数和列宽属性,因此请确保这些属性设置正确。以下代码隐藏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
如果不喜欢标题,可以在组合框旁边使用带有静态字符串的label对象

编辑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


您缺少
结束。您能告诉我要用来显示的属性名称吗?请选择银行?很抱歉。试试这个。您可以使用
ColumnHeads
属性在列表顶部显示列名,但我不清楚这是否是您想要的。有没有办法停止在combobox中输入文本?我不这么认为。也许通过一些参考图书馆和一个公共活动,你可以让它工作。组合框设计为文本框和列表框的组合。如果您不喜欢文本框的行为,请尝试改用listbox控件。您缺少
End With
。您能告诉我要用来显示的属性名称吗?请选择银行?很抱歉。试试这个。您可以使用
ColumnHeads
属性在列表顶部显示列名,但我不清楚这是否是您想要的。有没有办法停止在combobox中输入文本?我不这么认为。也许通过一些参考图书馆和一个公共活动,你可以让它工作。组合框设计为文本框和列表框的组合。如果您不喜欢textbox行为,请尝试改用listbox控件。