使用 FrozenColumns 属性可以确定在数据表中将冻结的列数。Integer 型,可读写。
expression.FrozenColumns
expression 必需。返回“应用于”列表中的一个对象的表达式。
冻结的列显示在数据表的左侧,并且在水平滚动数据表时,它们不会移动。
注释 FrozenColumns 属性只能应用于“数据表”视图中的表、窗体及查询。
单击“格式”菜单上的“冻结列”时,Microsoft Access 将设置 FrozenColumns 属性。
在 Visual Basic 中,该属性设置为 Integer 值,用于指出在数据表中使用“冻结列”命令冻结的列数。记录选定器字段始终是被冻结的,所以默认值是 1。因此,如果冻结一列,FrozenColumns 属性将设置为 2;如果冻结两列,该属性将设置为 3;依此类推。
该属性设置在所有视图中都是只读属性。
当使用“冻结列”命令来冻结列时,Microsoft Access 将自动按照冻结它们的顺序,把其移动到数据表的最左边。例如,如果冻结三列,它们将成为数据表的第一、第二和第三列。因为记录选定器字段列始终是被冻结的,在这里,FrozenColumns 属性将设置为 4。冻结的三列,其 ColumnOrder 属性将设置为 1、2 和 3 (按照它们被冻结的顺序)。
如果单击“格式”菜单上的“取消对所有列的冻结”,全部被冻结的列都将取消冻结,并且 FrozenColumns 属性设置为 1。
注释 如果“冻结列”命令改变了列次序,则“取消对所有列的冻结”命令将不会恢复列原有的顺序。
下面的示例使用 FrozenColumns 属性来确定表的“数据表”视图中有多少列被冻结。如果冻结列在三列以上,表的尺寸将被最大化,以便在界面上能看到尽可能多的未冻结列。
Sub CheckFrozen(strTableName As String)
Dim dbs As Object
Dim tdf As Object
Dim prp As Variant
Const DB_Integer As Integer = 3
Const conPropertyNotFound = 3270 ' Property not found error.
Set dbs = CurrentDb ' Get current database.
Set tdf = dbs.TableDefs(strTableName) ' Get object for table.
DoCmd.OpenTable strTableName, acNormal ' Open table.
tdf.Properties.Refresh
On Error GoTo Frozen_Err
If tdf.Properties("FrozenColumns") > 3 Then ' Check property.
DoCmd.Maximize
End If
Frozen_Bye:
Exit Sub
Frozen_Err:
If Err = conPropertyNotFound Then ' Property not in collection.
Set prp = tdf.CreateProperty("FrozenColumns", DB_Integer, 1)
tdf.Properties.Append prp
Resume Frozen_Bye
End If
End Sub