ACCESS中通过VBA将EXCEL文档中的多个结构相同的表合并为一个表-Big Young
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


ACCESS中通过VBA将EXCEL文档中的多个结构相同的表合并为一个表

发表时间:2017/11/5 20:04:07 评论(1) 浏览(8077)  评论 | 加入收藏 | 复制
   
摘 要:ACCESS中通过VBA将EXCEL文档中的多个结构相同的表合并为一个表。
正 文:
'合并所有的工作表
Public Sub MergeWorkSheets(strWrkBookName As String)
    Dim objExcelApp As Object
    Dim objWorkbook As Object
    Dim objWorkSheet As Object
    Dim strSQL As String
    Set objExcelApp = CreateObject("Excel.application", "")
    objExcelApp.Visible = False
    Set objWorkbook = objExcelApp.Workbooks.Open(strWrkBookName)
    DoCmd.SetWarnings False
    For Each objWorkSheet In objWorkbook.Worksheets
        'Debug.Print objWorkSheet.Name
        If IsNull(DLookup("[Id]", "[MSysObjects]", "[Type]=1 AND [Name]='tempTable'")) Then
        strSQL = "Select * INTO tempTable FROM [Excel 12.0 XML;HDR=YES;DATABASE=" & strWrkBookName & "].[" & objWorkSheet.Name & "$];"
        Else
            strSQL = "Insert INTO tempTable Select * FROM [Excel 12.0 XML;HDR=YES;DATABASE=" & strWrkBookName & "].[" & objWorkSheet.Name & "$];"
        End If
        DoCmd.RunSQL strSQL
    Next
    objWorkbook.Close True
    objExcelApp.Quit
    strSQL = "Select * INTO [Excel 12.0 XML;HDR=YES;DATABASE=" & CurrentProject.Path & "\合并结果输出.xlsx].[合并] FROM tempTable;"
    DoCmd.RunSQL strSQL
    DoCmd.DeleteObject acTable, "tempTable"
    'DoCmd.TransferDatabase acExport, "dBase 5.0", Access.CurrentProject.Path, acTable, "tempTable", "DBFTable", False, False
    DoCmd.SetWarnings True
    Set objWorkSheet = Nothing
    Set objWorkbook = Nothing
    Set objExcelApp = Nothing
End Sub


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access小品】来回折腾--数据分解与合并  【todaynew  2011/1/25】
【Access源码示例】-- 根据姓名合并汇总数据  【竹笛  2012/11/14】
姓名的拆分与合并  【小赵  2014/3/28】
数据输出到Excel指定单元格及Excel单元格合并  【cspa  2015/11/7】
通过文档属性将Access数据合并到Word  【杨雪  2016/3/1】
【Access查询学习】--合并两个表中字段数据有差异的情况下进行...  【麥田  2017/2/10】
常见问答
技术分类
相关资源
文章搜索
关于作者

Big Young

文章分类

文章存档

友情链接