请教各位VBA高手,如何用程序实现将不同的EXCEL工作薄导入已有的不同ACCESS数据表中
例如:将 JSPOINT.XLS,JSLINE.XLS,PSPOINT.XLS,PSLINE.XLS
     导入 数据库.MDB中的JSPOINT,JSLINE,PSPOINT,PSLINE数据表中
      注:EXCEL表名与ACCESS表名是对应的
急急急急急急急急

解决方案 »

  1.   

    我们都知道,Excel的文件结构.下面我就说一说:
    工作表为: Test.Xls  里面有工作本: Sheet1 Sheet2 Sheet3 或更多的工作本.
    对于每一个工作本来说:比说 Sheet1 他在256列.65536行.(但不是说每一行,每一列都有数据)
    也就是说一作Excel表格里面有N个表格,每个表格是不定行,不定列的.好了.现在再来说你的问题.一个数据库.里面有一个表格.第是对应Excel文档里面的Sheet1工作表还是对应Sheet2工作表?
    对于你的工作表来说,你的列数是否有定义.(是否是个空表.结构都没有.)如果是这样,那还要建立表的结构.
      

  2.   

    http://download.csdn.net/source/561006
    http://download.csdn.net/source/549064
    看看我以上的两个例程你的问题就可以得到解决了
      

  3.   

    这要看你的编程的立足点是哪里?是用access里的vba?还是用excel里的vba?还是另外用vb写?
    不过这三种方法都可以通过调用access内部的导入功能来轻松实现目的。
      

  4.   

    只把每个EXCEL 里的SHEET1导入ACCESS表中,而且ACCESS中的表结构与EXCEL中SHEET1中的字段名称是一样的,结构也相同,EXCEL中SHEET1都不是空表。
    我想用EXCEL里的VBA实现。
    哪位高手帮我解决一下,谢谢!!
      

  5.   

    晕!!
    用Excel Vba 连接access数据库,用sql文一条一条插进去。
      

  6.   

    我记得有本参考书里好象是把格式转变一下就可以了.具体的记不清了.
    或者是你用你录制宏把一条记录插入ACCESS中,看下生成的宏代码
      

  7.   

    首先,用VBA获取某个EXCEL表中一条记录的值不难吧。现在假设你获取了JSPOINT表中的一条记录(假设共6个字段),分别为A,B,C,D,E,F,如果你要把这六个值导入到ACCESS数据库的表中。则:
    Function TransData(a As String, b As String, c As String, d As String, e As String, f As String)Dim conn As New ADODB.Connection
    Dim com As New ADODB.Commandconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Documents and Settings\Administrator\桌面\abc.mdb"
    conn.Opencom.CommandType = adCmdText
    com.CommandText = "Insert Into JSPOINT Values('" & a & "','" & b & "','" & c & "','" & d & "','" & e & "','" & f & "')"
    com.ActiveConnection = conncom.Execute
    conn.Close
    Set com = Nothing
    Set conn = NothingEnd Function依次读取每一条记录,然后依次导入到ACCESS数据库中即可。
      

  8.   

    补充一句,这个函数需要添加对“Microsoft ActiveX Data Objects 2.8 Library”的引用。
      

  9.   

    用VBA把一个EXCEL中的SHEET1表导入ACCESS 中指定的表中我早就实现了,我现在想问的是把多个EXCEL文件中的SHEET1导入一个ACCESS中的多个指定的表中,好像大家都没有理解我的意思?说明EXCEL表结构与ACCESS中表结构完全相同。
      

  10.   

    用QueryTable先查询出每个EXCEL文件的SHEET1数据,然后再导入ACCESS:
    Sub TTT()Dim fs As New Scripting.FileSystemObject
    Dim qt As QueryTable
    Dim sqlSelect As String
    Dim sqlFrom As StringConst InvPath As String = "Z:\test"sqlSelect = "[Sheet1$a:d].Location, [Sheet1$a:d].Code, [Sheet1$a:d].Qty, [Sheet1$a:d].Unit"
    sqlFrom = "[" & InvPath & "].[Sheet1$a:d] [Sheet1$a:d]"With ThisWorkbook.Sheets(1)
        .Range("a1:d65536").ClearContents
        
        Set qt = .QueryTables.Add("ODBC;DSN=Excel Files;DBQ=" & InvPath & ".xls" & ";DriverId=790;", .Range("a1"), "Select " & sqlSelect & " From " & sqlFrom )
        
        qt.FieldNames = True
        qt.Refresh False
    End WithEnd Sub
      

  11.   

    15楼的,你那个如何打开MDB数据库啊?