如何将Excel Power Query汇总连接数据加载至Access数据表?
解决Power Query合并超大数据加载到Access的问题
核心原因
Excel的「仅连接表」是Power Query的查询逻辑定义,并非存储在工作表中的实体数据,因此Access直接导入时无法识别这类连接对象。以下是三种可行的解决方案:
方案一:从Power Query直接发布到Access
这是最直接的方式,跳过Excel工作表加载限制:
- 打开Excel的Power Query编辑器,找到你合并完成的汇总查询。
- 点击顶部「主页」选项卡 → 「发布」→ 选择「发布到Access」。
- 在弹出窗口中,指定目标Access文件的路径和文件名,设置要创建的Access表名称,确认后即可将汇总数据直接写入Access。
方案二:在Access中批量导入TXT并合并
绕开Excel的行数限制,直接在Access中处理源文件:
- 新建空白Access数据库,点击「外部数据」选项卡 → 「文本文件」,选择单个TXT文件,按向导设置分隔符、表头、数据类型等,完成导入。
- 若TXT文件数量多,用VBA批量导入(替换路径为你的TXT文件夹):
Sub BatchImportTXT() Dim folderPath As String, fileName As String folderPath = "C:\YourTXTFolder\" '替换为实际文件夹路径 fileName = Dir(folderPath & "*.txt") Do While fileName <> "" '自动生成表名,去掉.txt后缀 Dim tableName As String tableName = "TXT_Data_" & Left(fileName, Len(fileName) - 4) '导入文本文件,True表示第一行是表头 DoCmd.TransferText acImportDelim, , tableName, folderPath & fileName, True fileName = Dir Loop End Sub - 合并所有导入的表:创建联合查询,执行后生成汇总表
创建新查询,切换到SQL视图,输入以下语句(替换表名为实际导入的表名):
右键查询 → 「生成表查询」,指定汇总表名称,执行即可得到合并后的实体表。SELECT * FROM TXT_Data_File1 UNION ALL SELECT * FROM TXT_Data_File2 UNION ALL SELECT * FROM TXT_Data_File3;
方案三:通过Excel数据模型中转导入Access
利用Excel数据模型承载大数据,再导入Access:
- 在Excel中,将合并后的Power Query查询设置为「仅创建连接」并勾选「添加到数据模型」(在「关闭并上载至」窗口中选择)。
- 打开Access,点击「外部数据」→ 「Excel」,选择你的Excel文件。
- 在导入向导中,选择「从数据模型」选项,选中合并查询对应的模型表,完成导入。
内容的提问来源于stack exchange,提问作者Suren Grigoryan
相关产品推荐
相关产品推荐

