0

我的 Access 应用程序中有一个表格,需要用一堆 Excel 文件中的数据填充。我试过这段代码:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, strTable, strExcelpath, True

但它每次都会覆盖我的访问表中的数据而不是附加它,并且它绝对无法控制发送的内容。

我需要找到一种方法来简单地将 Excel 文件中的数据附加到我的 Access 表中,这两个文件具有相同的结构,所以我想知道是否有一种方法可以在不指定列的情况下逐行导入它。但是,出于个人知识和对用户使用的恐惧,考虑到行和列,我也想知道如何导入它。

谢谢 !

编辑:在 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
4

1 回答 1

1

您还可以在查询中引用 Excel 工作表或范围:

INSERT INTO Table1 ( ADate ) 
SELECT SomeDate FROM [Excel 8.0;HDR=YES;DATABASE=Z:\Docs\Test.xls].[Sheet1$a1:a4]

或者

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=,无空格。

于 2012-08-08T14:16:22.470 回答