MSDN中好象有说到:“解除绑定模式”是DataGrid不支持的。但是我就是搞不清楚,为什么就不能纯粹得用网格来显示一些东东,而这些数据却不是数据库的内容。我知道可以用MSFlexGrid或MSHFlexGrid,但是我想问的是到底有没有办法让DataGrid可以用非绑定模式来操作??或许是我对这个控件不熟悉请教了

解决方案 »

  1.   

    把下面的代码直接粘上试试:
    Dim rs As New Recordset
    Private Sub Form_Load()
        rs.Fields.Append "a", adVariant, adFldMayBeNull + adFldIsNullable + adFldUpdatable
        rs.Fields.Append "b", adBSTR, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
        rs.Fields.Append "c", adBSTR, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
        rs.Fields.Append "d", adBSTR, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
    End SubPrivate Sub Command1_Click()
        Dim i%
        rs.Open
        For i = 1 To 4
            rs.AddNew
            rs(0) = "1"
            rs(1) = "2"
            rs(2) = "3"
            rs(3) = "4"
        Next
        rs.UpdateBatch
        Set DataGrid1.DataSource = rs
    End Sub
      

  2.   

    我想知道不用Recordset就不能用DataGrid了吗??不是吧?
      

  3.   

    Private Sub Form_Load()
      '以上代码用来连接sale.mdb数据库
      '下面代码用于把datagrid1作为如excel单元格来使用
      Command3.Enabled = False
      sum = 0
      Label2.Caption = "合计:"
      DataGrid1.Caption = "华庭销售"
      On Error Resume Next
      Set adoRecordset = New ADODB.Recordset
      adoRecordset.Fields.Append "条形码", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "商品类别", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "商品名称", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "销售单价", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "数量", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      'adoRecordset.Fields.Append "进货价", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "销售额", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "货存量", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
      adoRecordset.Fields.Append "交易时间", adVariant, , adFldMayBeNull + adFldIsNullable + adFldUpdatable
    End Sub
    我就是用这种方法来使用这种功能的,不过还是有个问题
    想从datagrid中当datagrid1.allowaddnew=true时就往cell中写入一些数据,然后在datagrid1_afteredit事件中把cell中的内容addnew到adorecordset对象中,再刷新一下datagrid1:让我想想怎么写:
    private sub_datagrid1_afteredit()
       '唉,新增出来的那个row号怎么获取呢?我曾经尝试过的
    '还是请高手提示一下
    end sub
    不用recordset对象应该不行的
      

  4.   

    看来还是使用MSHFlexGrid比较好。谢谢各位的解答,给分。