最好是先与一个数据库建立关联,然后就可以实现增加空行和保存的功能。如果你同意我的意见的话,我可以给出源代码,包括增加和保存。

解决方案 »

  1.   

    我已经和数据库邦定了。我同意你的意见。请赐教。谢谢!
      

  2.   

    我用的是ADO方式,源码如下:
    在使用之前先从工程菜单中引用MSADO15.DLL(全名为)MICROSOFT ACTIVEX DATA OBJECTS 2.5 LIBRARY
    首先在声明区填写以下内容
    Public cn As Connection, rs As Recordset, conn As String
    在Form_Load()中加入以下内容:
    Set cn = New Connection
    Set rs = New RecordsetIf Right(App.Path, 1) <> "\" Then
        conn = App.Path & "\"
    Else
        conn = App.Path
    End Ifconn = "Provider=MSDASQL.1;Persist Security Info=False;User ID=admin;Extended Properties=DSN=hl(此处换成你的DSN名);DBQ=" & conn & "heli.mdb(此处换成你的数据库名);DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;PWD=heli(数据库密码);Initial Catalog=" & conn
    cn.Open conn
    rs.CursorLocation = adUseClient
    rs.Open "select * from temp(换成你的数据表名)", conn, adOpenKeyset, adLockPessimistic
    Set DataGrid1.DataSource = rs
    DataGrid1.Refresh
    cn.Close
    在增加按钮下填写以下内容:
    rs.close
    rs.open "select * from temp(换成你的数据表名)"
    rs.addnew
    rs.fields("id(此处换成你的字段名)")=0(此处置刚添加内容为空)
    rs.update
    Set DataGrid1.DataSource = rs
    DataGrid1.Refresh
    在保存按钮下填写以下内容:
    rs.movefirst
    Do
        rs.Fields("单据编号") = Val(Text1)
        For i = 2 To rs.Fields.Count - 1
            rs.Fields(DataGrid1.Columns(i).Caption) = DataGrid1.Columns(i).CellValue(DataGrid1.Book)
        Next
        rs.UpdateBatch
        rs.MoveNext
    Loop Until rs.EOF
    Set DataGrid1.DataSource = rs
    DataGrid1.Refresh
    这样就可以完成这几项操作。