You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Run-time Error 3131 FROM子句语法错误(Microsoft Access)设置子窗体RecordSource报错

错误原因
  • 核心问题为SQL字符串拼接时未预留合理空格:原代码中"FROM DEL"与后续的"WHERE..."直接拼接后会生成FROM DELWHERE的非法内容,不符合SQL语法规范,直接触发FROM子句语法错误。
  • 次要拼接错误:LIKE条件后未闭合单引号,同时未预留空格与后续的ORDER BY拼接,会生成*ORDER BY的非法内容,进一步导致语法报错。
修复方案

将SQL拼接部分的字符串补全空格、补全LIKE条件的闭合单引号即可,修正后的完整代码如下:

Private Sub btnsearch_Click()
    Dim SQL As String
    
    SQL = "SELECT DEL.ID, DEL.Company, DEL.Address, DEL.Country, DEL.Category, DEL.Activity, DEL.[Products Involved] " _
        & "FROM DEL " _
        & "WHERE [Products Involved] LIKE '*" & Me.txtkeywords & "*' " _
        & "ORDER BY DEL.Company;"

    Me.sub_dellist.Form.RecordSource = SQL
    Me.sub_dellist.Form.Requery
End Sub
调试技巧

后续遇到同类SQL语法报错时,可在SQL字符串赋值完成后加一行Debug.Print SQL,按Ctrl+G调出VBA编辑器的立即窗口,就能看到拼接完成的完整SQL语句,复制到Access的查询设计界面直接运行,就能快速定位具体语法问题。

内容的提问来源于stack exchange,提问作者Noobcoder123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:27:05