如何用VB打开一现有的EXCEL表格(有记录),保留表单中原来的数据不变,在空的Cell中添加新的记录,然后保存,相当于追加记录?

解决方案 »

  1.   

    先在execl里面用宏记录下你要做的动作
    再copy到vb里面
    前面加上
    Set excelApp = CreateObject("Excel.application")搞定
      

  2.   

    Dim cn As New ADODB.Connectioncn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended
        Properties=""Excel 8.0;HDR=Yes;IMEX=1"""cn.Execute "Insert Into [Sheet1](field1, field2, ...) Values(123, 'abc', ...)"cn.CloseSet cn = Nothing
      

  3.   

    谢谢上面的答复,我按照这个方法做了,代码如下:
    Dim adoConnection  As New ADODB.Connection
    Dim adoRecordset As New ADODB.Recordset
    adoConnection.CursorLocation = adUseClient
    adoConnection.Mode = adModeReadWrite
    adoConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                            "Persist security Info=false;" & _
                            "Data Source=D:\myExcel.xls;" & _
                            "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
    adoConnection.Open
    adoConnection.Execute "Insert into [sheet1$](aa,bb) values(3,4)"adoRecordset.CursorLocation = adUseClient
    adoRecordset.LockType = adLockPessimistic
    adoRecordset.Open "select  * from [Sheet1$]", adoConnection Dim i As Integer
    Do Until adoRecordset.EOF
       For i = 0 To adoRecordset.Fields.Count - 1
         Debug.Print adoRecordset.Fields.Item(0).Name
         Debug.Print adoRecordset.Fields.Item(0).Value
       Next i
       adoRecordset.MoveNext
    LoopadoRecordset.AddNew
    adoRecordset.Fields.Item(0).Value = 9
    adoRecordset.Update
    adoRecordset.AddNew Array("aa", "bb"), Array(1, 2)以上代码出现的问题是,可以读表格中的数据
    但是不能更新数据,用UPDATE,ADDNEW,INSERT INTO 方法是总是出现
         实时错误 '2147467259 (80004005)':
         "操作必须使用一个可更新的查询"问题出在那里,怎么解决呀!请诸位帮忙!!!1
      

  4.   

    adoRecordset.LockType = adLockPessimistic
    你看是不是这里有问题?我不知道这个英文是什么意思