繁体   English   中英

查询表达式中的语法错误(缺少运算符) - VBA

[英]Syntax error (missing operator) in query expression - VBA

这是我的代码:

    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 中的语法错误(缺少运算符)

谁能帮我解决这个问题?

MS Access 绝对不支持LIMIT中的UPDATE 我认为它也不支持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
                           );

笔记:

  • 这假设您的表有一个主键。
  • 注意使用? . 这表明您应该为此值使用参数,而不是修改查询字符串。
  • 我不确定是否可以将行数作为参数传入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM