首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL更新查询以将Excel数据添加到Access

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

Stack Overflow用户
提问于 2013-09-20 18:26:36
回答 1查看 3.8K关注 0票数 1

我一直在寻找一个直接的解决方案,但没有发现任何像我试图在这个板上做的事情。我有一个Excel工作表,其中有几个针对不同公司的非连续债券列表(假设一家公司有5个债券,3个完全空行,然后另一个列表列出另一个公司的6个债券,5个完全空行,等等)。

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

我需要执行这样的逻辑:在range A1 & B1 & C1不为空的情况下,向表中添加一个新记录,显示A1 & B1 & C1作为字段Ticker、优惠券和成熟度。在这些单元格为空的地方,移动到下一行。

有人能帮我评估我的代码吗?当我指定"Set db“时,我得到了一个错误3343。

我的初步代码如下(从网上可以找到的内容中拼凑到与Excel和SQL命令的接口):

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-20 18:56:59

DAO.DBEngine.36用于DAO 3.6,适合于MDB格式的数据库文件。但是,您的数据库是ACCDB格式,这意味着DAO 3.6不能工作。您必须使用较新的DAO代替。

代码语言:javascript
运行
复制
'Set objConnection = CreateObject("DAO.DBEngine.36")
Set objConnection = CreateObject("DAO.DBEngine.120")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18923446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档