gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:07:04 24 4
gpt4 key购买 nike

我一直在寻找一个直接的解决方案,但还没有找到与我在这个板上尝试做的完全一样的事情。我有一个 Excel 工作表,其中包含不同公司的几个不连续的债券列表(想想一个公司的 5 个债券,3 个完全空的行,然后另一个公司的 6 个债券的另一个列表,5 个完全空的行,等等) .

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

我需要执行此逻辑:如果范围 A1 & B1 & C1 不为空,则向表中添加一条新记录,将 A1 & B1 & C1 显示为字段 [Ticker]、[Coupon]、[Maturity]。在这些单元格为空白的地方,移动到下一行。

有人可以帮助评估我的代码吗?我在指定“Set db”时收到错误 3343。

我的初步代码如下(从我可以在网上找到的与 Excel 和 SQL 命令的接口(interface)):

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适用于适用于 MDB 格式数据库文件的 DAO 3.6。但是,您的数据库是 ACCDB 格式,这意味着 DAO 3.6 将无法工作。您必须改用较新的 DAO。

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

关于将 Excel 数据添加到 Access 的 SQL 更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com