我的 Access 应用程序中有一个表,需要填充一堆 Excel 文件中的数据。我尝试了这段代码:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTable, strExcelpath, True
但它每次都会覆盖我的访问表中的数据,而不是附加它,并且它完全无法控制发送的内容。
我需要找到一种方法来简单地将 Excel 文件中的数据附加到我的 Access 表中,这两个文件具有相同的结构,因此我想知道是否有一种方法可以在不指定列的情况下逐行导入它。但是,出于个人知识和对用户使用的恐惧,我也想知道如何考虑行和列来导入它。
Thanks !
编辑:在 Excel 文件上选择代码:
Dim cn As ADODB.Connection
Dim strQuery As String
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Application.CurrentProject.Path & "\Excel\test.xls;" & _
"Extended Properties=Excel 8.0;"
.Open
End With
strQuery = "INSERT INTO tblClients " & _
"SELECT * FROM [Excel 8.0;HDR=YES;DATABASE =" & Application.CurrentProject.Path & "\Excel\test.xls].[tblImport$]"
DoCmd.RunSQL strQuery
您还可以在查询中引用 Excel 工作表或范围:
INSERT INTO Table1 ( ADate )
SELECT SomeDate FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$a1:a4]
Or
INSERT INTO Table1
SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$]
在一个程序中:
Sub RunThisQuery()
strQuery = "INSERT INTO tblClients " & _
"SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" _
& Application.CurrentProject.Path & "\Excel\test.xls].[tblImport$]"
CurrentDB.Execute strQuery, dbFailOnError
End Sub
请注意,您的代码中后面有一个空格DATABASE
。必须读DATABASE=
, 没有空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)