ADO Provider:找不到数据源名称

时间:2019-01-23 12:26:29

标签: excel vba ms-access ado

我知道之前曾有人问过这个问题,但我无法从以前的帖子中获得建议来工作。

在下面,您可以看到我的代码,我认为它或多或少都可以正常工作,但是我总是会得到数据源名称错误。

在此方面的任何帮助将不胜感激!

Sub ADOFromExcelToAccess()
    Dim cn As ADODB.Connection, rs As ADODB.Recordset, i As Long

    Set cn = New ADODB.Connection
    cn.Open "Provider = MSDASQL;" &_
      "Data Source = C:\Users\ablohn\Documents\Database2.accdb"

    Set rs = New ADODB.Recordset
    rs.Open "NameofTable", cn, adOpenKeyset, adLockOptimistic,    adCmdTable

    For i = 1 To 10 
        x = 0

        Do While Len(Range("A" & i).Offset(0, x).Formula > 0
            With rs
                .AddNew
                .Fields("Name1") = Range ("A" & i).Value
                'repeated for as many times as needed
                .Update
            End With
            x = x + 1
        Loop
    Next i

    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
End Sub

1 个答案:

答案 0 :(得分:0)

为什么不只使用select intoinsert into

像这样,其中f1是第1(A)列,f3是第3(C)列

select f1,f3 INTO tbl1 FROM [EXCEL 12.0;HDR=YES;IMEX=2;DATABASE=C:\Workspace\test_data1.xlsx].[sheet1$]

insert into tbl1 SELECT f1,f3 FROM [EXCEL 12.0;HDR=YES;IMEX=2;DATABASE=C:\Workspace\test_data1.xlsx].[sheet1$]