ListBox.ColumnOrder 属性 (Access)

使用 ColumnOrder 属性可以指定数据表视图中列的顺序。 Integer 型,可读/写。

语法

表达式ColumnOrder

表达 一个代表 ListBox 对象的变量。

备注

[!注释] 若要设置或更改使用 Visual Basic 的表或查询此属性,必须使用列的 属性 集合。 有关使用 Properties 集合的详细信息,请参阅 Properties

[!注释] ColumnOrder 属性在设计视图中不可用。

ColumnOrder 属性适用于在数据表视图中的所有字段和窗体控件当窗体处于数据表视图。

在数据表视图中字段的 ColumnOrder 属性设置取决于该字段的位置。 例如,在数据表视图中最左边的列中的字段的 ColumnOrder 属性设置为 1 下, 一个字段已设置为 2,依次类推。 更改某个字段的 ColumnOrder 属性可将该字段和每个字段的属性重置为数据表视图中其原始位置的左边。

在其他视图中,该属性将设为 0,除非您明确更改数据表视图 (通过将字段拖到新位置或更改其 ColumnOrder 属性设置) 中的一个或多个字段的顺序。 位于被移动的字段新位置右侧的字段将在数据表视图以外的视图中具有的属性设置为 0。

“数据表”视图中字段的顺序并不影响表“设计”视图或“窗体”视图中字段的顺序。

列表框可以是窗体控件,窗体可以显示在数据表视图中。 此属性控制当窗体显示为数据表时窗体元素的显示列顺序。

示例

以下示例在“产品”窗体的“数据表”视图中显示前两列的“ProductName”和“QuantityPerUnit”字段。

Forms!Products!ProductName.ColumnOrder = 1 
Forms!Products!QuantityPerUnit.ColumnOrder = 2

以下示例在数据表视图中的 Products 表的前两列中显示 ProductNameQuantityPerUnit 字段。 若要设置 ColumnOrder 属性,该示例使用 SetFieldProperty 过程。 如果在表打开的状态下执行该过程,则更改只能在表关闭并重新打开后才能显示。

Public Sub SetColumnOrder() 
 
 Dim dbs As DAO.Database 
 Dim tdf As DAO.TableDef 
 
 Set dbs = CurrentDb 
 Set tdf = dbs!Products 
 
 ' Call the procedure to set the ColumnOrder property. 
 SetFieldProperty tdf!ProductName, "ColumnOrder", dbLong, 2 
 SetFieldProperty tdf!QuantityPerUnit, "ColumnOrder", dbLong, 3 
 
 Set tdf = Nothing 
 Set dbs = Nothing 
 
End Sub 
 
Private Sub SetFieldProperty(ByRef fld As DAO.Field, _ 
 ByVal strPropertyName As String, _ 
 ByVal intPropertyType As Integer, _ 
 ByVal varPropertyValue As Variant) 
 ' Set field property without producing nonrecoverable run-time error. 
 
 Const conErrPropertyNotFound = 3270 
 Dim prp As Property 
 
 ' Turn off error handling. 
 On Error Resume Next 
 
 fld.Properties(strPropertyName) = varPropertyValue 
 
 ' Check for errors in setting the property. 
 If Err <> 0 Then 
 If Err <> conErrPropertyNotFound Then 
 On Error GoTo 0 
 MsgBox "Couldn't set property '" & strPropertyName & _ 
 "' on field '" & fld.Name & "'", vbCritical 
 Else 
 On Error GoTo 0 
 Set prp = fld.CreateProperty(strPropertyName, intPropertyType, _ 
 varPropertyValue) 
 fld.Properties.Append prp 
 End If 
 End If 
 
 Set prp = Nothing 
 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。