NULL SQL 查询后需要错误 424 对象

Error 424 object required after NULL SQL query

我 运行 一些 EXCEL VBA 代码来更新 ACCESS 数据库的内容 table 按照此处建议的行: IF @@Rowcount = 0 -- SQL Syntax Error in Access .当我执行 SELECT 查询时,EXCEL VBA 给出此错误消息:

Run-time error 424: Object required

我从 VBA Watch window 中提取了 SQL 字符串,运行 它作为 ACCESS 中的查询。我第一次这样做时,没有记录,因为 table 是空的,所以我 运行 在 ACCESS 中插入查询,然后尝试 运行 VBA 代码但是得到了同样的错误信息。

代码在这里:

Public db As DAO.Database

' Open database

Public Sub OpenMdtDatabase()
    Set db = DBEngine(0).OpenDatabase("SL_MDT_data_v1.accdb")
End Sub

' Update DB table

Sub UpdateDb()

' Initialise

Dim rs As DAO.Recordset
Set xlSht = Sheets("plot_data")

' Open database

Call OpenMdtDatabase

' Get the data to store

sname = xlSht.Cells(6, "R").Value
xfill = xlSht.Cells(6, "S").Value
xedge = xlSht.Cells(6, "T").Value
xstyl = xlSht.Cells(6, "U").Value
xsize = xlSht.Cells(6, "V").Value

' SQL stuff

sqlTxtSelect = "SELECT SeriesName FROM SeriesProperties WHERE SeriesName ='" & sname & "';"

sqlTxtUpdate = "UPDATE SeriesProperties " & _
sqlTxtUpdate = "SET SeriesFill = " & xfill & ", " & _
sqlTxtUpdate = "SeriesEdge = " & xedge & ", " & _
sqlTxtUpdate = "SeriesStyle = " & xstyl & ", " & _
sqlTxtUpdate = "SeriesSize = " & xsize & " " & _
sqlTxtUpdate = "WHERE SeriesName = '" & sname & "';"

sqlTxtInsert = "INSERT INTO SeriesProperties('" & sname & "') " & _
sqlTxtInsert = "VALUES(" & xfill & ", " & xedge & ", " & xstyl & ", " & xsize & ");"

Set rs = db.OpenRecordset(sqlTxtSelect)

If rs.RecordCount = 0 Then
    DoCmd.RunSQL (sqlTxtInsert)
Else
    DoCmd.RunSQL (sqlTxtUpdate)
End If
End Sub

我猜测 SQL SELECT 字符串有问题。我尝试使用

直接设置它
SELECT SeriesName FROM SeriesProperties WHERE SeriesName ='14/10-2:F2F_SLMC'

但仍然收到相同的错误消息。我也试过去掉冒号...

语句有问题

DoCmd.RunSQL (sqlTxtInsert)

如果我将其更改为

db.Execute (sqlTxtInsert)

那么一切都很好。应该滚动到原来答案的末尾 link ....