如何将多个excel工作簿导入 access 如何将1个有几十个sheet的excel表,一次导入一个AC...

作者&投稿:郸哈 (若有异议请与网页底部的电邮联系)
Sub 添加记录access2007()
Dim cnn As New ADODB.Connection
Dim Cat As New ADOX.Catalog
Dim MyData$, MyFile, n%
MyData = ThisWorkbook.Path & "\数据库.accdb"
On Error Resume Next
If Dir(MyData) = "" Then
Cat.Create "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & MyData
Else
Cat.ActiveConnection = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & MyData
Cat.Tables.Delete "数据表1"
End If
Set Cat = Nothing
On Error GoTo 0
cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & MyData
Mypath = ThisWorkbook.Path & "\"
MyFile = Dir(Mypath & "*.xlsx")
Do While MyFile <> ""
n = n + 1
If n = 1 Then
cnn.Execute "select * into 数据表1 from [Excel 12.0;Database=" & Mypath & MyFile & "].[Sheet1$]"
Else
cnn.Execute "insert into 数据表1 select * from [Excel 12.0;Database=" & Mypath & MyFile & "].[Sheet1$]"
End If
MyFile = Dir()
Loop
cnn.Close
Set cnn = Nothing
MsgBox "ok"
End Sub

如何一次性将一个文件夹中多个EXCEL导入到ACCESS中的一张表~

1.在Access中创建对Excel工作簿的链接:在Access中选择“外部数据——导入——Excel”。


2.在“获取外部数据”对话框中选择“通过创建链接表来链接到数据源”。必须为每个Excel工作簿重复该过程直到将它们都链接到数据库。结果如下图所示。


3.在SQL视图中开始新的查询,单击“创建——其他——查询设计”。


4.选择“查询工具-设计”中的“SQL视图”


5.在SQL视图中,为所有链接的Excel表输入Select语句,在每个Select语句间使用Union操作符,在SQL视图中输入选择查询语句。


6.运行查询后,结果将是包含从所有链接的文件中获取并合并后的数据。
只要链接的Excel文件在相同的位置,每次打开数据库时Access将自动刷新链接以获取最新数据。这意味着只需设置一次,然后在每次需要重新组合Excel文件时运行联合查询。然而,默认情况下,UNION操作符会移除数据中的任何重复行。如果知道数据中有重复行,并且想保留它们,那么需要使用UNION ALL,以允许传递重复行。

一次性的话只能用程序实现,手动的话只能分多次导入,向导不支持批量导入。