Add 方法(Columns)把一个新列添加到 Columns 集合。不支持命名的参数。语法object.Add colindexAdd 方法的语法包含下列部分 :部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
colindex 必需的。如“设置值”中所示。是一个整数,用于指定新的 Column 对象被插入到 Column 集合的什么地方, 设置值
colindex 列索引的设置值为:设置值 描述
0 插入新列作为最左边的列。
Count 如果 colindex 参数与 Count 属性设置相同,则新列作为最右边的列插入。
n 把新列插入到 Columns 集合中第 n 列的左边。第 n 列及所有后续的列相应增加。
说明Add 方法根据 colindex 参数把一个新 Column 插入到 Columns 集合中。 添加的新列的 Visible 属性设置为 False,其它属性设置为缺省值。 初始时,由于 DataField 属性被设置为一个“0 长度字符串” (""),故新列未被连结。 Columns 集合的 Count 属性增加以反映这一新的列。重点 如果以前使用 Remove 方法删除了一个列,在增加了新的列后,就可能需要用 Rebind 和 Refresh 方法刷新显示。这就命令 DataGrid 控件重新生成其内部列的布局矩阵,以正确反映控件的真实状态。
object 对象表达式,其值是“应用于”列表中的对象。
colindex 必需的。如“设置值”中所示。是一个整数,用于指定新的 Column 对象被插入到 Column 集合的什么地方, 设置值
colindex 列索引的设置值为:设置值 描述
0 插入新列作为最左边的列。
Count 如果 colindex 参数与 Count 属性设置相同,则新列作为最右边的列插入。
n 把新列插入到 Columns 集合中第 n 列的左边。第 n 列及所有后续的列相应增加。
说明Add 方法根据 colindex 参数把一个新 Column 插入到 Columns 集合中。 添加的新列的 Visible 属性设置为 False,其它属性设置为缺省值。 初始时,由于 DataField 属性被设置为一个“0 长度字符串” (""),故新列未被连结。 Columns 集合的 Count 属性增加以反映这一新的列。重点 如果以前使用 Remove 方法删除了一个列,在增加了新的列后,就可能需要用 Rebind 和 Refresh 方法刷新显示。这就命令 DataGrid 控件重新生成其内部列的布局矩阵,以正确反映控件的真实状态。
DataGrid 控件基本上是通过绑定显示数据的。因此,添加记录也可以通过所绑定的记录集Union其他记录集来实现。
Datagrid.Columns.Add
Datagrid添加行:
通过绑定的记录集AddNew,记录集要可写的
Set adoRecordset = New ADODB.Recordset
Dim i As Integer
For i = 0 To 2 '为Recordset三个字段,即为 DataGrid 添加三列
adoRecordset.Fields.Append "第" & i & "列", adVariant, ,
adFldMayBeNull + adFldIsNullable + adFldUpdatable
Next i
adoRecordset.Open
For i = 0 To 3
adoRecordset.AddNew '加四条记录,即为 DataGrid 添加四空行
Next i
Set DataGrid1.DataSource = adoRecordset '绑定 DataGrid 的数据源
adoRecordset.MoveFirst
'编到这里就已经实现了编辑单元格。
? 准确读取单元格内容,是电子表格最重要的方面。 方法一:直接使用记录集。 创建如下函数返回某单元格内容: Private Function vMyCell_1
(adoRecordsetX As ADODB.Recordset,
iColX As Integer, iRowX As Integer) As Variant
If iColX < = adoRecordsetX.Fields.Count
- 1 And iRowX < =
adoRecordsetX.RecordCount - 1 Then
adoRecordsetX.Move iRowX, adBookFirst
If IsNull(adoRecordsetX.Fields(iColX).Value) Then
vMyCell_1 = "Null"
Else
vMyCell_1 = adoRecordsetX.Fields(iColX).Value
End If
Else
vMyCell_1 = "下标越界"
End If
End Function
方法二:使用记录集数组。 创建如下函数返回某单元格内容: Private Function vMyCell_2
(adoRecordsetX As ADODB.Recordset,
iColX As Integer, iRowX As Integer) As Variant
Dim V As Variant
'将 Recordset 对象的多个记录恢复到数组中
V = adoRecordsetX.GetRows(adoRecordsetX.RecordCount,
adBookFirst)
If iColX < = UBound(V, 1) And iRowX < = UBound(V, 2) Then
If IsNull(V(iColX, iRowX)) Then
vMyCell_2 = "Null"
Else
vMyCell_2 = V(iColX, iRowX)
End If
Else
vMyCell_2 = "下标越界"
End If
End Function
方法三:使用DataGrid.Text属性返回。 创建如下函数返回某单元格内容: Private Function vMyCell_3
(DataGridX As DataGrid, adoRecordsetX As
ADODB.Recordset, iColX As Integer,
iRowX As Integer) As Variant
If iColX < = DataGridX.Columns.Count
- 1 And iRowX < =
adoRecordsetX.RecordCount - 1 Then
DataGridX.Col = iColX
DataGridX.Row = iRowX
vMyCell_3 = DataGridX.Text
Else
vMyCell_3 = "下标越界"
End If
End Function