Dim i As Integer
      // For i = 0 To 99        为了一次性插入多个记录   我加了个for循环
以下单独插入一条是完全正确的  我想简单的外边加个for循环  来一次性添加多条记录
但好像实现不了  每次都只加了10条   原先我是循环9999次  发现程序就无响应了 我想在循环体中加了个doevents,还是不行
       insterSql = "insert into AlarmVhlInfo(sVhlName,sVhlSim,sVhlLon,sVhlLat,sVhlDir,sVhlSpeed,sVhlStatus,sVhlDate,sVhlTime) values('" & vehicleNo & "','" _
         & alarmVehicleSIMNo & "','" & myLongitude & "','" & myLatitude & "','" & myDirection & "','" & mySpeed & "','" & mystatus & "',#" & Date & "#,#" & myTime & "#)"
        
        Set rs = accessDb(insterSql, count)
    //  Next  i其中accessdb函数如下:
'数据插入操作
Public Function accessDb(ByVal sSql As String, Optional count As Integer) As ADODB.Recordset
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\Data\Gps.mdb;" 
cn.Open
Set rs = cn.Execute(sSql, count)
Set accessDb = rsEnd Function

解决方案 »

  1.   

    首先我要否定你的格式:试想一下,每一条都要打开一次连接,速度慢得要死了。正确做法是在程序启动时打开一次公共连接,然后
    Set rs = accessDb(insterSql, count)
    替换成
    cn.Execute insterSql明白讲句:你那个函数很多余。^_^
      

  2.   

    试试动态组合这样的SQL:Insert Into 表(字段1,字段2)
    Select '001','AAA'
    Union ALL Select '002','BBB'
    Union ALL Select '003','CCC'
    Union ALL Select '004','DDD'
    然后一次性提交