SQL更新查询将Excel数据添加到Access

我一直在寻找一个直接的解决scheme,但没有发现任何东西,就像我在这个板子上试图做的一样。 我有一个Excel工作表,它有不同的公司的几个不连续的债券清单(一个公司有5个债券,3个完全空行,另一个公司有6个债券,5个完全空行等) 。

我试图编写一个SQL更新查询,将直接更新.accdb格式的Access表。 我有与Excel中的列标题名称相同的字段,具有相同的数据。

我需要执行这个逻辑:在区域A1&B1&C1不是空白的情况下,在显示A1&B1&C1的表格中添加一个新logging作为字段[Ticker],[Coupon],[Maturity]。 那些单元格是空白的,移动到下一行。

有人可以帮助评估我的代码? 我在指定“Set db”的位置出现错误3343。

我的初步代码如下(从我能在网上find的一切与Excel和SQL命令接口):

Sub UpdateDatabase() Dim x As Integer Dim strSQL As String Dim db As Database Dim dbLocation As String Dim objConnection As Object Worksheets("Bonds Clean").Activate Range("A6").Select dbLocation = "c:\Folders\Workflow Tables.accdb" Set objConnection = CreateObject("DAO.DBEngine.36") Set db = objConnection.OpenDatabase(dbLocation) For x = 1 To Range(Selection, Selection.End(xlDown)).Rows.Count If Not (Selection.Value = "") Then strSQL = "UPDATE tblBonds_Temp SET" strSQL = strSQL & "Ticker =" & Chr(34) & Selection.Offset(0, 1).Value & Chr(34) & "," strSQL = strSQL & "Coupon =" & Chr(34) & Selection.Offset(0, 2).Value & Chr(34) & "," strSQL = strSQL & "Maturity =" & Chr(34) & Selection.Offset(0, 3).Value & Chr(34) & ";" db.Execute strSQL Else End If Selection.Offset(1, 0).Select Next End Sub 

DAO.DBEngine.36适用于DAO 3.6,适用于MDB格式的数据库文件。 但是,您的数据库是ACCDB格式,这意味着DAO 3.6将不起作用。 您必须改用较新的DAO。

 'Set objConnection = CreateObject("DAO.DBEngine.36") Set objConnection = CreateObject("DAO.DBEngine.120")