作者:绿色风
分类:
时间:2022-08-18
浏览:107
楼主 水星钓鱼 |
Q:如何将Access中的表批量导入到Excel工作簿中? A:利用SELECT * INTO 目标工作簿 From Access表 这样的SQL语句可以将Access中的表批量导入到Excel工作簿中,但是这个语法有几个注意点: 1.只能将Access表导入到非当前工作簿,如果导入到当前工作簿会报错。 2.目标工作簿可以不存在也可以存在,但是目标工作表一定不能存在,目标工作簿如果不存在则新建一个工作簿。 3.将Access中的表批量导入到Excel中时用SQL语句指定工作表时不需要再添加美元符号。
以下代码将“工资发放明细表.accdb”中12个月的工资发放明细导入到同路径下的“结果.xls”工作簿中,“结果.xls”工作簿不存在。- Private Sub CommandButton1_Click()
- Dim oCat, oCn, oTab
- Dim sFile As String
- Dim sCn As String
- Dim sSQL As String
- Set oCat = CreateObject("ADOX.Catalog")
- sFile = ThisWorkbook.Path & "\" & "工资发放明细表.accdb"
- sCn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sFile
- oCat.ActiveConnection = sCn
- Set oCn = oCat.ActiveConnection
- '遍历所有ACCESS表
- For Each oTab In oCat.Tables
- If oTab.Type = "TABLE" Then
- '将每个ACCESS表导入到"结果.xls"工作簿中,并按照ACCESS表名作为新工作表的名称
- sSQL = "select * into [Excel 8.0;Database=" & ThisWorkbook.Path & "\结果.xls].[" & oTab.Name & "] from " & oTab.Name
- oCn.Execute sSQL
- End If
- Next oTab
- Set oCn = Nothing
- Set oCat = Nothing
- End Sub
附件如下:
导入ACCESS表的数据.rar
其它相关的帖子可以见:
如何用代码将Excel工作表的内容一次性导入Access中? http://www.exceltip.net/thread-31652-1-1.html
如何将当前工作簿中的所有工作表导入到ACCESS中并按照工作表的名称命名? http://www.exceltip.net/thread-31715-1-1.html
以下是一个没有用变量的标准的从ACCESS将表导入到Excel的SQL语句- "SELECT * INTO [Excel 8.0;Database=" & App.Path & "\book1.xls].[Sheet1] FROM Customers"
|
2楼 omnw |
与数据库相关的知识还很欠缺,有机会向水星多请教。 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一