我是一个新手我有一个vba代码的问题,从excel文件访问中的表导入数据。使用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文件中并包含数据。相同的子工作没有问题的其他工作表,并在访问表中插入数据。
传递给exceute的字符串是:
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
我很想知道错误在哪里请帮忙! 提前感谢所有希望帮助我弄清楚我错在哪里的人。 问候 文森特
答案 0 :(得分:0)
您可能会发现从Access执行此操作更容易。 Access使用像Excel这样的VBA,所以你不应该遇到很多麻烦。
在Access中,有一个名为 DoCmd.TransferText 的命令。 Click here for the full syntax
搜索更多示例。祝你好运。