Excelファイルアクセスでテーブルからデータをインポートするためのvbaコードに問題があります。Office 2010 を使用していますが、コードを起動すると次のエラーが表示されます: (イタリア語からの翻訳) 実行時エラー -2147217865 (80040e37) Microsoft Access データベース エンジンはオブジェクト 'INCONTRI$A1:I108468 を見つけることができません。オブジェクトが存在し、その名前と入力したパスが正しいことを確認してください。
コードは次のとおりです。
VB:
Sub EXPORT2ACCESS()
Dim ultimariga As Long
Dim ultimacolonna As Integer
Dim foglio, finesel As String
strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\TOTALBET\TOTALBET_XML_DB.accdb"
dbWb = Application.ActiveWorkbook.FullName
For i = 1 To 4
ultimariga = Sheets(i).Range("A" & Rows.Count).End(xlUp).Row
ultimacolonna = Sheets(i).Cells(1, Sheets(i).Columns.Count).End(xlToLeft).Column
finesel = Application.ConvertFormula("R" & ultimariga & "C" & ultimacolonna, xlR1C1, xlA1, toAbsolute:=xlRelative)
foglio = Application.Sheets(i).Name
Set cn = CreateObject("ADODB.Connection")
Dim cmd As ADODB.Command
dsh = "[" & Application.Sheets(i).Name & "$A1:" & finesel & "]"
cn.Open strCon
Set cmd = New ADODB.Command
cmd.CommandType = adCmdText
cmd.CommandText = "Delete * from " & foglio
cmd.ActiveConnection = cn.ConnectionString
cmd.Execute
With Sheets(i)
For x = 1 To ultimacolonna
campo = "[" & .Cells(1, x).Value & "]"
If x = 1 Then
stringa = campo
Else
stringa = stringa & ", " & campo
End If
Next x
End With
''Insert into a table called
strsql = "INSERT INTO " & foglio & "(" & stringa & ") "
strsql = strsql & "SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
Debug.Print strsql
''Execute the statement
cn.Execute strsql
Next i
End Sub
テーブル「incontri」が私のExcelファイルに存在し、データが含まれています。同じサブが他のシートでも問題なく機能し、アクセステーブルにデータを挿入しました。
実行に渡す文字列は次のとおりです。
VB:
INSERT INTO INCONTRI([Static_ID], [Stage_ID], [Season], [Number], [Data], [Time], [Status], [Venue_ID], [League]) SELECT * FROM [Excel 12.0;HDR=YES;DATABASE=C:\Users\Admin\Desktop\test xml.xlsm].[INCONTRI$A1:I108468]
ファイルは次のとおりです (フォーラムに入れるには大きすぎます。申し訳ありません:
コードとデータを含む Excel ファイル: https://www.sugarsync.com/pf/D9350024_63096411_117675
アクセスファイル:https ://www.sugarsync.com/pf/D9350024_63096411_117635
エラーがどこにあるかを理解するのに夢中になっています。助けてください! 私がどこで間違っているかを理解するのを手伝ってくれるすべての人に前もって感謝します. 挨拶ヴィンセント