帮我看一下,我要将数据插入A,B两个表中,下面代码有何问题
Set cn = New ADODB.Connection
cn.Open ConnectString
Dim rs01 As New ADODB.Recordset
Dim rs02 As New ADODB.Recordset
rs01.Open "select * from A"
rs02.Open "select * from B"
cn.BeginTrans
On Error GoTo inserterr
   With rs01
        .AddNew
        .Fields(0).Value = sheet_no
        .Fields(1).Value = gpos
        .Fields(2).Value = work_no
        .Update
   End With
   For i = 0 To Form1.MSglist.Rows - 1
       With rs02
          .AddNew
          .Fields(0).Value = sheet_no
          .Fields(1).Value = serial_no
          .Fields(2).Value = Form1.MSglist.TextMatrix(i, 4)
          .Update
       End With
   Next
cn.commitrans
   Exit Sub
inserterr:
cn.RollbackTrans
MsgBox "error", vbInformation, "AAA"

解决方案 »

  1.   

    打开数据表的时候应该加参数。
    如:rs01.Open "select * from A", cn, adOpenDynamic, adLockOptimistic
      

  2.   

    同上!
    也可以不打开数据集,直接用Command对象来完成.
      

  3.   

    直接用Command对象来完成.怎么写,能给段简单代码吗?
      

  4.   


    Dim conn As New ADODB.Connection
    conn.ConnectionString = "自己添"
    conn.Open
    conn.Execute "insert into A(字段1,字段2,字段3) value(" + sheet_no + "," + gpos  + "," + work_no + ")"
      

  5.   

    如果不涉及特殊字符可以用Set cn = New ADODB.Connection
    cn.Open ConnectString
    cn.execute "insert into A (field1,field2) values('a',12)"的方法来完成。