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

基于表单文本框SID值执行Access删除查询的问题求助

解决Access删除查询引用表单控件时的参数输入问题

你遇到的核心问题是:独立保存的查询无法直接识别Me!SID——Me是表单自身代码里的引用关键字,仅在表单的VBA或嵌入表单的查询中有效。单独运行保存的查询时,系统会把Me!SID当成未定义的参数,所以弹出输入框要求填写。

下面给两种可行的解决办法:

方案一:在VBA中执行动态SQL(推荐)

直接在按钮点击事件里构建带表单参数的删除语句,不用依赖保存的查询,更灵活且不易出错:

Private Sub delSYS_Click()
    Dim strSQL As String
    
    ' 注意:如果SID是文本类型,用单引号包裹值;如果是数字类型,去掉单引号
    strSQL = "DELETE [tbl-planung].SID, [tbl-apartner].* " & _
             "FROM [tbl-planung] INNER JOIN [tbl-apartner] ON [tbl-planung].SID = [tbl-apartner].SID " & _
             "WHERE [tbl-planung].SID = '" & Me!SID & "';"
    
    ' 数字类型SID的写法:
    ' strSQL = "DELETE [tbl-planung].SID, [tbl-apartner].* " & _
    '          "FROM [tbl-planung] INNER JOIN [tbl-apartner] ON [tbl-planung].SID = [tbl-apartner].SID " & _
    '          "WHERE [tbl-planung].SID = " & Me!SID & ";"
    
    DoCmd.RunSQL strSQL
    ' 可选:执行后添加提示
    ' MsgBox "关联记录已删除"
End Sub

方案二:修改保存的查询,使用完整表单控件引用

如果想继续用qry-delSystem这个保存的查询,把WHERE子句里的Me!SID改成表单的完整路径引用(替换成你的实际表单名称):

DELETE [tbl-planung].SID, [tbl-apartner].*
FROM [tbl-planung] INNER JOIN [tbl-apartner] ON [tbl-planung].SID = [tbl-apartner].SID
WHERE ((([tbl-planung].SID)=Forms![你的表单名称]!SID));

⚠️ 注意:执行这个查询时,必须确保对应的表单处于打开状态,否则系统还是会报错或要求输入参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:22:18