MS Access中Listbox的BOUND COLUMN属性有什么作用?

3
列表框的 BOUND COLUMN 属性的目的是什么?

2
我发现Access中的帮助文件相当有用。当您编辑表单时,只需按F1即可。 - PowerUser
3个回答

11

绑定列是一个数字,它代表从行源中哪一列用于设置控件源的值(如果列表框已绑定)。

请注意,您不能在此处使用列名。因此,您不应将绑定列设置为列名称,而必须使用列号。

另一个问题是列号从1开始(而非0)。通常第一列的长度被设置为零,这使您可以创建一个列表框,例如:

select PartNumber, PartDescripton from tblParts
列表框将会显示零件描述,但如果你设置绑定列 = 1,则列表框将返回零件号,尽管列表框正在显示描述(因为你设置了第一列的长度 = 0)。如果将绑定列设置为2,则列表框将返回描述。请注意,你可以使用([lstBox1].Column)从列表框中获取任何列的值。请注意,在上面的代码中,列特性是以0为基础的。所以,1代表第二列。

我会把PartID作为查询结果的第一列。虽然这只是小问题。 - Tony Toews

4

这是数据集中用于设置列表框值的列。例如,如果它绑定到一个查询为:

select firstname,lastname,userid from users;

如果将绑定列设置为用户ID(在上面的示例中为3),则用户ID信息将作为列表框值返回。


2
绑定列是作为列表框值返回的列,但不一定是列表框显示的列,这由设置列宽来控制,在上面的示例中,将绑定列设置为1,列宽设置为0cm;2cm可以隐藏ID,这是很常见的做法。 - Fionnuala
绑定列不是基于零的 :) - Fionnuala
3
我经常受到VBA和Access在0和1索引集合方面的不一致性的困扰。对于数组,您可以选择设置它们是0或1索引,但默认情况下,它们是0索引,而Access集合都是0索引,但自定义集合是1索引。烦死了,我总是弄错这个。 - David-W-Fenton

1

绑定列是表单将要保存的数据。例如,如果您有一个列出employeeID和employeeName的列表框或组合框,并将绑定列设置为0,则表单将保存所选内容中的员工ID号,并将该值插入到相应的表中。您可以使用以下vba测试您正在引用哪个值:

Private Sub ComboBoxName_AfterUpdate()
   MsgBox ("bound column is: " & Me.ComboBoxName.BoundColumn & ". value is: " & Me.ComboBoxName.Column(0))'change 0 to whatever number column is bound
End Sub

即使表单中的第一列被隐藏,绑定列规则仍然适用。例如,用户可以从员工列表中选择“Mike Jones”,但表单将保存Mike Jones的员工ID以供数据使用(此ID可以存储在销售记录等表中)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接