Dim cn1 As New ADODB.Connection
 Dim rs1 As New ADODB.Recordset
 cn1.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\库文件.mdb"
 rs1.Open "select * from itemB_J", cn1, adOpenStatic, adLockReadOnly
 Dim 级别 As String
 Dim 系列 As String
 Dim 子系列 As String
 Dim i As Integer
 For i = 0 To rs1.RecordCount - 1
级别i = rs1.Fields("级别").Value
系列i = rs1.Fields("系列").Value
子系列i = rs1.Fields("子系列").Value
    dbs2.Execute "delete * from tempB"
    dbs2.Recordsets.Refresh
    dbs2.Execute "INSERT INTO tempB(系列,子系列,地市,项目全称,承办审计机关,被审计单位名称,级别,check,审计组长,备注) select 系列,子系列,地市,项目全称,承办审计机关,被审计单位名称,级别,check,审计组长,备注 from base where 系列='" & 系列i & "' & 子系列='" & 子系列i & "' & 级别='" & 级别i & "' "
     dbs2.Recordsets.Refresh
    w = dbs2.Recordsets.Count
    rs1.MoveNext
    Next i
base为数据表,实际存在满足条件的纪录,但是没有结果写入到tempB,不知是哪里的错误,望高手指教。谢谢。

解决方案 »

  1.   

    dbs2.Execute "delete * from tempB"
        dbs2.Recordsets.Refresh
    放在循环体外
    每次都删掉了,当然没有数据
      

  2.   

    从base数据表中筛选出满足条件的结果,写入到tempB数据表中,满足的条件来自rs1即itemB_J,另一个数据表的纪录,这其中用到了3个数据表。
      

  3.   

    Dim cn1 As New ADODB.Connection
     Dim rs1 As New ADODB.Recordset
     cn1.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\库文件.mdb"
     rs1.Open "select * from itemB_J", cn1, adOpenStatic, adLockReadOnly
     Dim 级别 As String
     Dim 系列 As String
     Dim 子系列 As String
     Dim i As Integer
        dbs2.Execute "delete * from tempB"
        dbs2.Recordsets.Refresh
     For i = 0 To rs1.RecordCount - 1
    级别i = rs1.Fields("级别").Value
    系列i = rs1.Fields("系列").Value
    子系列i = rs1.Fields("子系列").Value
        dbs2.Execute "INSERT INTO tempB(系列,子系列,地市,项目全称,承办审计机关,被审计单位名称,级别,check,审计组长,备注) select 系列,子系列,地市,项目全称,承办审计机关,被审计单位名称,级别,check,审计组长,备注 from base where 系列='" & 系列i & "' & 子系列='" & 子系列i & "' & 级别='" & 级别i & "' "
         dbs2.Recordsets.Refresh
        w = dbs2.Recordsets.Count
        rs1.MoveNext
        Next i还是没有结果啊