我知道之前曾有人问过这个问题,但我无法从以前的帖子中获得建议来工作。
在下面,您可以看到我的代码,我认为它或多或少都可以正常工作,但是我总是会得到数据源名称错误。
在此方面的任何帮助将不胜感激!
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
答案 0 :(得分:0)
为什么不只使用select into
或insert 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$]