用vb6实现,将在oracle查询得到的数据直接保存在本地的access数据库文件中,查询语句为:
SELECT AL3.ALOT_NUMBER, AL3.PKGCODE, AL3.PRODLINE, AL3.DEVC_NUMBER AS DEVICE, AL1.STEP_NAME, AL1.PROCESS_START_TIME, " & _
    "AL2.PROCESS_END_TIME, AL3.PRIORITY, AL4.DEVC_NUMBER AS LEADFRAME, AL7.DEVC_NUMBER AS GOLDWIRE FROM GENSTAGING.MVIEW$_AOLOT_HISTS AL1, " & _
    "GENSTAGING.MVIEW$_AOLOT_HISTS AL2, GENSTAGING.MVIEW$_AO_LOTS AL3, GENSTAGING.MVIEW$_STEP_BOMS AL4, " & _
    "GENSTAGING.MVIEW$_DEVICES AL5, GENSTAGING.MVIEW$_STEP_BOMS AL6, GENSTAGING.MVIEW$_DEVICES AL7 WHERE " & _
    "(AL3.ALOT_NUMBER=AL1.ALOT_NUMBER AND AL1.ALOT_NUMBER=AL2.ALOT_NUMBER AND AL4.PKIT_NAME=AL3.PKIT_NAME " & _
    "AND AL5.DEVC_NUMBER=AL4.DEVC_NUMBER AND AL3.PKIT_NAME=AL6.PKIT_NAME AND AL6.DEVC_NUMBER=AL7.DEVC_NUMBER)  " & _
    "AND (AL2.STEP_NAME='DIE_CAGE' AND AL1.STEP_NAME='WIRE_BOND' AND AL1.CURRENT_FLAG='Y' AND AL1.PROCESS_START_TIME " & _
    "IS NULL AND AL4.STEP_NAME='DIE_BOND' AND AL5.MTRL_TYPE='LEADFRAME' AND AL6.STEP_NAME='WIRE_BOND' AND AL7.MTRL_TYPE='GOLDWIRE') "
针对查询得到的数据程序所在目录下已经创建temp.mdb文件,并在文件中建立表 oracle,字段名与查询的字段名相同为:PKGCODE, ALOT_NUMBER, DEVICE, LEADFRAME, PROCESS_END_TIME, PRIORITY, GOLDWIRE。最终目的就是将ORACLE数据库查得的数据保存在TEMP.MDB文件的ORACLE表中。这个问题我在网上找了一晚上没找到答案,希望高手援手!

解决方案 »

  1.   

    参考(Excel导出Access):Private Sub Command1_Click()
        Dim cn As New ADODB.Connection
        Dim cn2 As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim rs2 As New ADODB.Recordset
        Dim i As Integer
        
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.xls;Extended Properties=""Excel 8.0;"""
        rs.CursorLocation = adUseClient
        rs.Open "select * from [Sheet1$]", cn, 1, 1
        
        cn2.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\Test.mdb;Uid=Admin;Pwd=;"
        rs2.Open "select * from table1", cn2, 1, 3
        
        While Not rs.EOF
            rs2.AddNew
            For i = 0 To rs2.Fields.Count - 1
                rs2(i) = rs(i)
            Next
            rs.MoveNext
        Wend
        rs2.UpdateBatch        Set rs2 = Nothing
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
        cn2.Close
        Set cn2 = Nothing
    End Sub
      

  2.   

    faysky2()的方法是可行的,建立两个ADODB.Connection,一个连接到ORACLE数据库,一个连接到你的ACCESS数据库,将你的ORACLE数据库的数据读取到ADODB.Recordset中Do While Not Rs.Eof
        SQL = "Insert Into oracle(PKGCODE, ALOT_NUMBER, DEVICE, LEADFRAME, PROCESS_END_TIME, PRIORITY, GOLDWIRE) Values (" _
              & Rs.Fields(0) _
              & "," & Rs.Fields(1) _
              & "," & Rs.Fields(2) _
              & "," & Rs.Fields(3) _
              & "," & Rs.Fields(4) _
              & "," & Rs.Fields(5) _
              & "," & Rs.Fields(6) _
              & ")"
        Cn2.Excute SQL
        Rs.MoveNext
    Loop
      

  3.   

    就是就是,一条一条的读取然后给access数据库!!
     虽然麻烦,但是很容易理解
      

  4.   

    rs1.open "select * from table1",cnn1
    rs2.open "select * from table2",cnn2
    intFields = rs1.Fields.Count - 1
     For k = 1 To rs1.RecordCount
            rs2.AddNew
            For j = 0 To intFields
              rs2.Fields(j).Value = rs1.Fields(j).Value
            Next
            rs2.UpdateBatch
            rs1.MoveNext
      Next
    rs1.Close
    rs2.Close