我写了一段把Excel的数据导入到SQL的代码,但是excel只有当格式与程序导出来的excel表相同的时候才能导入,
而且导入的时候经常会停住在某个数据上,删掉后会继续进行下去,可是我在程序中没有设置格式。
当数据较少的时候一切正常,但是一旦当excel表中的数据达到600以上的时候就会出错,导入经常会停止
还请各位高人指点一下
代码如下On Error GoTo lbErr
    Dim conn3 As New ADODB.Connection
      Dim strSQL As String
    Dim sqll As String
    Dim sql As String
    Dim sqlll As String
With cn
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '" & str1 & " ';Extended Properties=Excel 8.0;Persist Security Info=False "
.Open
End With
conn3.Open connectstring
strSQL = "Select * from [Sheet1$]"
adoRS.CursorLocation = adUseClient
Set adoRS.ActiveConnection = cn
adoRS.Open strSQL, cn, 2, 3
adoRS.MoveFirst
excelnum = adoRS.RecordCount
   Do While Not adoRS.EOF            sql = "insert into temp2  values( '" & adoRS!税务管理码 & " ', '" & adoRS!单位名称 & " ', '" & adoRS!单位地址 & " ')"
           conn.Execute sql
      这里是将excel导入到表temp2中,下面是将temp2中的不一样的数据插入到UserInfoBase
        adoRS.MoveNext
    Loop
    sqlll = "insert UserInfoBase select  * From temp2 Where checksum(code) not in ( select  checksum(code)  from UserInfoBase )"
        conn3.Execute sqlll
    
Adodc1.Refresh
DataGrid1.Refresh
cn.Close

解决方案 »

  1.   

    好像excel确实有这种问题,在大数据量时,通过程序excel表之间互相加减导数据不小心也会出现问题。通常问题的原因是某个数据的格式(类型)与其他数据的类型不同导致!
      

  2.   

    其实方法有很多,一种是用excel内置的VBA就可以完成,非常简单,vba下编程与vb几乎一模一样,并且对excel操作要比你哪种方式简单的多。另外一种是vb通过加载宏方式嵌入excel,编程结合了vba和vb两者的优点
      

  3.   

    vb操作EXCEL总是有些莫名其妙的问题,很烦
      

  4.   

    跟踪一下哪里出错,
    另外,在while循环中加doevents试试