Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & CommonDialog1.FileName & ";Extended Properties=Excel 8.0"
    strSQL = "INSERT INTO [odbc;Driver={SQL Server};Server=kearwan;Database=hq;UID=sa;PWD=200110;].数据录入_学生基本情况 SELECT id,姓名,性别,民族,备注,学号 FROM [Sheet1$]"
    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
    cn.Close
    Set cn = Nothing
    Sql = "delete from 数据录入_学生基本情况 where 姓名 is null"
    conn.Execute Sql
    MsgBox "导入成功!", vbOKOnly + vbExclamation
1.上面的语句已经能向一个表中导数据了,现在如果我还有一个表比如叫数据录入_学生基本情况备份,那么我该如何添加语句实现同时向两个数据库表中导呢?
2.如果我的数据库表中有一个人的信息比如说是张,但是我的excel表中还有一个但是他们的学号相同(学号再表中是唯一的),但是民族不同,我该如何添加判断语句用来覆盖以前的数据呢?

解决方案 »

  1.   

    我觉得这样做不是很复杂哟..
    dim conn1 as new adodb.Connection
    dim conn2 as new adodb.Connection
    dim rs1 as new adodb.Recordset
    dim rs2 as new adodb.recordset
    conn1.open"select * from 第一个表",conn1,3,3
    conn2.open"select * from 第二个表",conn2,3,3
    -----------------插入记录时
    插入第一个表
    with rs1
         .close
         .open "insert into 表一(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
    插入第二个表
    with rs2
         .close
         .open "insert into 表二(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
    我以前这样测试过好像没有问题哟
      

  2.   

    上面的回复误复意思了,我以为是两个数据库呢..一个数据库一两个表,就简单多了,
    dim conn as new adodb.Connection
    dim rs1 as new adodb.Recordset
    dim rs2 as new adodb.recordset
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='" + App.Path + "\data.mdb" + "'"
    rs1.open"select * from 表",conn,3,3'初始化记录集
    rs2.open"select * from 表",conn,3,3'初始化记录集-----------------插入记录时
    插入第一个表
    with rs1
         .close
         .open "insert into 表一(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
    插入第二个表
    with rs2
         .close
         .open "insert into 表二(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
      

  3.   

    同意楼上,但是如果加上事务处理,就更好了:
    dim conn as new adodb.Connection
    dim rs1 as new adodb.Recordset
    dim rs2 as new adodb.recordset
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source='" + App.Path + "\data.mdb" + "'"conn.BeginTrans '///事务开始rs1.open"select * from 表",conn,3,3'初始化记录集
    rs2.open"select * from 表",conn,3,3'初始化记录集-----------------插入记录时
    插入第一个表
    with rs1
         .close
         .open "insert into 表一(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
    插入第二个表
    with rs2
         .close
         .open "insert into 表二(XXX,XXXX) values(xxx,xxxx)",conn1,3,3
    end with
    conn.CommitTrans
    conn.close