常用属性

Col表示Table中的列。
通过Cols集合,可以获得指定名称的列(Col),例如:

Tables("订单").Cols("客户")

表示订单表的客户列。

也可以获得指定位置的列,例如:

Tables("订单").Cols(2)

下表是Col的常用属性:

属性名 说明
Name 返回列的名称
Index 返回列的位置
Caption 返回列的标题
ComboList 返回或设置列表项目,不同项目之间用符号“|”隔开
Visible 返回或设置列是否可见,设为False,列将被隐藏
AllowEdit 是否允许编辑列
DataCol 返回Col对应的数据列(DataCol)。

通过Name属性和Index属性,我们可以获得指定名称列的位置,也可以获得指定位置列的名称:

例如:

Output.Show("金额列的位置是:" & Tables("订单").Cols("金额").Index)
Output.Show(
"第三列的名称是:" & Tables("订单").Cols(2).Name)

再例如我们要选定整个数量列:

With Tables("订单")
    Dim c As Integer = .Cols("数量").Index
    .
Select(0, c, .Rows.Count - 1, c)
End
With

需要注意的是,Index属性是只读的,你无法通过修改Index属性来改变该列位置,Col是通过Move方法来调整自身位置的。

例如:

With Tables("订单")
    .Cols(
"日期").Move(0)
    .Cols(
"客户").Move(1)
    .Cols(
"产品").Move(2)
End With

上述代码将日期、客户、产品移到前三列的位置。

ComboList属性用于动态设置列表项目,每个项目之间用符号"|"隔开,例如:

Tables("订单").Cols("支付方式").Combolist = "现金|转帐|支票"

很多时候我们需要从某一列中提取不重复的内容作为列表项目,例如:

Dim Str1 As String
Str1 =
DataTables("客户").GetComboListString("客户名称")
Tables
("订单").Cols("客户"
).Combolist = Str1

上述的代码,从客户表提取客户名称,作为订单表客户列的列表项目。

通过设置Visible属性,可以动态地隐藏和显示某一列,例如:

With Tables("订单")
    .Cols(
"折扣").Visible = False
    .Cols(
"单价").Visible = False
    .Cols(
"金额").Visible = False
    .Cols(
"数量").Visible = True
End
With

在命令窗口执行上面的代码,将隐藏折扣、单价、金额三列,同时显示数量列。

AllowEdit属性决定是否允许编辑该列(Col)。
如果没有明确设置Col的AllowEdit属性,则继承所属的DataCol的AllowEdit属性值。
例如某个表和其它表建立了关联,假定要求其中一列只能在主表中编辑,而不能在关联表中编辑,可以参考下面的代码:

DataTables("表名").DataCols("列名").AllowEdit = False '禁止编辑此列
Tables(
"表名").Cols("列名").AllowEdit = True '唯独主表例外

有的时候,我们需要获得Col所属的DataCol,以便访问DataCol的属性和方法,例如重置当前表选定列:

With CurrentTable
    .Cols(.ColSel).
DataCol.RaiseDataColChanged()
End With


本页地址:http://www.foxtable.com/webhelp/topics/1436.htm