查询表达式中的语法错误(缺少运算符) - VBA
Posted
技术标签:
【中文标题】查询表达式中的语法错误(缺少运算符) - VBA【英文标题】:Syntax error (missing operator) in query expression - VBA 【发布时间】:2021-06-18 05:38:26 【问题描述】:这是我的代码:
M_BKID = DMax("BK_ID", "BookingMain")
FSQL = " UPDATE Q_HrsToBeRefund_Writeable " & _
" SET BD_ToBeRefund = False, BD_Refunded = True, BD_RefundedRef = " & M_BKID & " " & _
" ORDER BY BD_Dt DESC LIMIT " & M_Refunded & " "
Debug.Print FSQL ' ********************************
DoCmd.RunSQL FSQL
我收到一个错误
查询表达式 '184 ORDER BY BD_Dt DESC 限制 3 中的语法错误(缺少运算符)
谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:MS Access 绝对不支持 UPDATE
中的 LIMIT
。我认为它也不支持TOP
。但你可以这样做:
UPDATE Q_HrsToBeRefund_Writeable as
SET BD_ToBeRefund = False,
BD_Refunded = True,
BD_RefundedRef = ?
WHERE <primary key> IN (SELECT TOP (M_Refunded) <primary key>
FROM Q_HrsToBeRefund_Writeable
ORDER BY BD_Dt DESC
);
注意:
这假设您的表有一个主键。 注意?
的使用。这表明您应该为此值使用参数,而不是修改查询字符串。
我不确定是否可以将行数作为参数传入。
【讨论】:
我不确定是否可以将行数作为参数传入。 不能,但可以使用 VBA 轻松连接,如M_BKID
将不得不。以上是关于查询表达式中的语法错误(缺少运算符) - VBA的主要内容,如果未能解决你的问题,请参考以下文章