【问题标题】:Import an excel table in a access file USING OFFICE 2010使用 OFFICE 2010 在访问文件中导入 Excel 表
【发布时间】:2013-06-16 12:04:00
【问题描述】:

我是新手,我在使用 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 文件中并包含数据。相同的子程序适用于其他工作表而没有问题,并在访问表中插入数据。

传递给执行的字符串是:

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

我很想知道错误在哪里,请帮忙! 提前感谢所有想帮助我找出我错在哪里的人。 你好 文森特

【问题讨论】:

  • 真的导入108468条记录吗?!?

标签: database vba ms-access excel import


【解决方案1】:

您可能会发现从 Access 执行此操作更容易。 Access 像 Excel 一样使用 VBA,因此您应该不会遇到太多麻烦。

在 Access 中,有一个名为 DoCmd.TransferText 的命令。 Click here for the full syntax.

搜索更多示例。祝你好运。

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 2014-12-02
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多