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 控件重新生成其内部列的布局矩阵,以正确反映控件的真实状态。

解决方案 »

  1.   

    关于添加记录:
    DataGrid 控件基本上是通过绑定显示数据的。因此,添加记录也可以通过所绑定的记录集Union其他记录集来实现。
      

  2.   

    DataGrid 好像没有ADD方法啊,不能用吧
      

  3.   

    你这个做法最好的MSFlexGrid,Datagrid和记录集的绑定太密切,你对Datagrid的操作会直接影响绑定的记录集,虽然很智能,但是灵活性极差,这是它本身控件有限制,是没没有什么好办法的
      

  4.   

    Datagrid添加列:
        Datagrid.Columns.Add
    Datagrid添加行:
        通过绑定的记录集AddNew,记录集要可写的
      

  5.   

    创建任意无数据库实体的记录集,并将其设为DataGrid的数据源。 Dim adoRecordset As ADODB.Recordset
    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
      

  6.   

    ado控键添加数据,在刷新然后datagrid刷新