列表框的 BOUND COLUMN 属性的目的是什么?
绑定列是一个数字,它代表从行源中哪一列用于设置控件源的值(如果列表框已绑定)。
请注意,您不能在此处使用列名。因此,您不应将绑定列设置为列名称,而必须使用列号。
另一个问题是列号从1开始(而非0)。通常第一列的长度被设置为零,这使您可以创建一个列表框,例如:
select PartNumber, PartDescripton from tblParts
列表框将会显示零件描述,但如果你设置绑定列 = 1,则列表框将返回零件号,尽管列表框正在显示描述(因为你设置了第一列的长度 = 0)。如果将绑定列设置为2,则列表框将返回描述。请注意,你可以使用([lstBox1].Column)从列表框中获取任何列的值。请注意,在上面的代码中,列特性是以0为基础的。所以,1代表第二列。这是数据集中用于设置列表框值的列。例如,如果它绑定到一个查询为:
select firstname,lastname,userid from users;
如果将绑定列设置为用户ID(在上面的示例中为3),则用户ID信息将作为列表框值返回。
绑定列是表单将要保存的数据。例如,如果您有一个列出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