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

コードの の後にスペースがあることに注意してくださいDATABASEDATABASE=スペースを入れないでください。

于 2012-08-08T14:16:22.470 に答える