ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 13112|回复: 16

[求助] 多张excel表导入access一个表

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-12-12 15:13 | 显示全部楼层 |阅读模式
目前有40多个excel表,每个表中的sheet表的格式都相同,字段也相同,需要将每个表的每个sheet表都导入access的同一个表中,请各位高手帮帮忙吧,手工导入表格快吐血了,多谢多谢。 范例.rar (18.46 KB, 下载次数: 82)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-12 18:01 | 显示全部楼层
各位大神帮帮忙吧,总体数据量大概有40多个表大概100多万行

TA的精华主题

TA的得分主题

发表于 2016-12-12 21:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
遍历文件
遍历工作表
StrSQL = "INSERT INTO [字段设置表] SELECT * FROM [Excel 12.0;Database=" & OpenFileDialog1.FileName & "].[字段设置表$] "

TA的精华主题

TA的得分主题

发表于 2016-12-12 21:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我也遇到同样的问题,求大神们帮帮忙

登记表示例.zip

22.31 KB, 下载次数: 35

一个工作簿中的多表格汇总到一张表

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-13 10:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可否帮忙做一个例子呢?万分感谢了

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-15 14:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
各位大神啊,求帮助啊

TA的精华主题

TA的得分主题

发表于 2016-12-15 15:27 | 显示全部楼层
打开mydata.accdb,在模块里修改mypath为数据源所在的地址即可。

  1. Function 导入()
  2. On Error GoTo 导入_Err
  3.     mypath = "C:\Documents and Settings\Administrator\桌面\范例\范例"
  4.     Filename = Dir(mypath & "\*.xlsx")
  5.     Do While Filename <> ""
  6.         fn = mypath & "" & Filename
  7.         DoCmd.TransferSpreadsheet acImport, 10, "收款表", fn, True, ""
  8.         Filename = Dir
  9.     Loop

  10. 导入_Exit:
  11.     Exit Function

  12. 导入_Err:
  13.     MsgBox Error$
  14.     Resume 导入_Exit
  15. End Function
复制代码

范例.rar

74.48 KB, 下载次数: 268

TA的精华主题

TA的得分主题

发表于 2016-12-15 15:30 | 显示全部楼层
Sub a()
'引用dao 3.6
Dim myDatabase As DAO.Database
    Dim myDataTable As DAO.TableDef
    Dim myDatabaseName As String
    Dim myDataTableName As String
    Dim myIndex As DAO.Index
    myDatabaseName = ThisWorkbook.Path & "\测试.mdb"
    myDataTableName = "数据"
    On Error Resume Next
    Kill myDatabaseName
    On Error GoTo 0
    Set myDatabase = CreateDatabase(myDatabaseName, dbLangGeneral)
    Set myDataTable = myDatabase.CreateTableDef(myDataTableName)
     Dim arr
     arr = [a1].CurrentRegion
    With myDataTable
        Set f = .CreateField("序号")
        f.Type = dbLong
        f.Attributes = dbAutoIncrField
        .Fields.Append f
        For i = 2 To UBound(arr)
            .Fields.Append .CreateField(arr(i, 1), arr(i, 2))
        Next
    End With
    myDatabase.TableDefs.Append myDataTable
    Set myDatabase = Nothing
    Call hb
End Sub
Sub hb()
Dim myfile$, mypath$
mypath = ThisWorkbook.Path & "\"
myfile = Dir(mypath & "*.xlsx")
Dim Cnn As Object, rs As Object, SQL$, x As Integer, y As Integer, m As Integer, crr, brr(1 To 9999, 1 To 14)
Do While myfile <> ""
    Set Cnn = CreateObject("ADODB.Connection")
    Cnn.Open "Provider=Microsoft.ace.OleDb.12.0;Extended Properties='Excel 12.0;HDR=yes'; Data Source=" & mypath & myfile
    SQL = "select * from [sheet1$A1:n] WHERE 收款方式 is not null "
    Set rs = Cnn.Execute(SQL)
    crr = rs.GetRows
        For m = 0 To UBound(crr, 2)
            x = x + 1
                For y = 1 To UBound(crr) + 1
                    brr(x, y) = crr(y - 1, m)
                Next
        Next
    myfile = Dir()
Loop
[d2:z9999].ClearContents
[d2].Resize(x, 14) = brr
Cnn.Close
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\测试.mdb;"
    SQL = "select * FROM [Excel 12.0;HDR=YES;DATABASE=" & ThisWorkbook.FullName & "].[sheet1$d1:q] where 收款方式 is not null"
    SQL = "INSERT INTO 数据 (收款方式,收款账号,收款日期,入账日期,收款编号,币种,收款金额,发票编号,客户名称,客户编号,匹配的订单号,订单金额,已核销金额,未核销金额) " _
        & SQL
Cnn.Execute (SQL)
Cnn.Close
Set Cnn = Nothing
End Sub


范例.rar (49.67 KB, 下载次数: 109)

TA的精华主题

TA的得分主题

发表于 2016-12-15 15:31 | 显示全部楼层
Sub a()
'引用dao 3.6
Dim myDatabase As DAO.Database
    Dim myDataTable As DAO.TableDef
    Dim myDatabaseName As String
    Dim myDataTableName As String
    Dim myIndex As DAO.Index
    myDatabaseName = ThisWorkbook.Path & "\测试.mdb"
    myDataTableName = "数据"
    On Error Resume Next
    Kill myDatabaseName
    On Error GoTo 0
    Set myDatabase = CreateDatabase(myDatabaseName, dbLangGeneral)
    Set myDataTable = myDatabase.CreateTableDef(myDataTableName)
     Dim arr
     arr = [a1].CurrentRegion
    With myDataTable
        Set f = .CreateField("序号")
        f.Type = dbLong
        f.Attributes = dbAutoIncrField
     

范例.rar

49.67 KB, 下载次数: 120

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-12-15 15:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
通过手动方式选择数据源文件夹。
  1. Function 导入()
  2. On Error GoTo 导入_Err
  3.    
  4.     Dim fso, fl, fp
  5.     Set fso = CreateObject("Scripting.FileSystemObject")
  6.     fp = CreateObject("Shell.Application").BrowseForFolder(0, "请选择文件夹", 0, "").Self.Path & ""
  7.     For Each fl In fso.getfolder(fp).Files
  8.         If fl.Name Like "*.xlsx" Then DoCmd.TransferSpreadsheet acImport, 10, "收款表", fl, True, ""
  9.     Next

  10. 导入_Exit:
  11.     Exit Function

  12. 导入_Err:
  13.     MsgBox Error$
  14.     Resume 导入_Exit
  15. End Function
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 17:08 , Processed in 0.025891 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表