执行 vba 查询 ms 访问时出现运行时错误 3075
Posted
技术标签:
【中文标题】执行 vba 查询 ms 访问时出现运行时错误 3075【英文标题】:Runtime Error 3075 while excution vba query ms access 【发布时间】:2021-03-15 10:51:59 【问题描述】:大家好,我在尝试执行 RunSql 方法时收到此错误,这是我的查询
Dim x As Integer
Dim strSQL As String
x = Me.PONumber
strSQL = "DELETE TblPoMaterials.PONumber, TblPoMaterials.ProductionDate, TblPoMaterials.AcceptedNumber, TblPoMaterials.RejectedNumber, TblPoMaterials.Shift " & vbCrLf & _
"FROM TblPoMaterials " & vbCrLf & _
"WHERE (((TblPoMaterials.PONumber)=" & x & ") AND ((TblPoMaterials.ProductionDate)=[Forms]![FrmProductionEdit]![Zdate]) AND ((TblPoMaterials.AcceptedNumber)=[Forms]![FrmProductionEdit]![AcceptedProduct]) AND ((TblPoMaterials.RejectedNumber)=[Forms]![FrmProductionEdit]![RejectedProduct]) AND ((TblPoMaterials.Shift)=[Forms]![FrmProductionEdit]![Shift]));"
DoCmd.RunSQL strSQL
主要思想是将变量x作为上一个查询的条件,我尝试使用
DoCmd.OpenQuery strSQL
我知道这是不对的,但我只是想看看会发生什么,它产生了一个不同的运行时错误。 提前致谢
【问题讨论】:
编辑问题以显示确切的错误消息。 PONumber 是数字类型字段吗?如果没有,需要撇号分隔符:='" & x & "')
。或以与其他参数相同的方式引用 PONumber 参数。
PoNumber 字段是数字,关于错误消息它在我添加 dim x 作为整数后消失了,声明在代码中的错误位置谢谢
这能回答你的问题吗? Microsoft Access VBA - Run time error '3075'
【参考方案1】:
只需将x
值作为参数包含在您的查询中,就像您执行其他表单控件一样。这样可以避免任何串联。下面假设Me.PONumber
是FrmProductionEdit
上的控件。如果不是,请调整为正确的表单名称。此外,DELETE
子句中的列是多余的,因为无论列出的列如何,都会根据WHERE
逻辑删除行。最后,使用表别名避免长表名重复,去掉多余的括号。
strSQL = "DELETE " & vbCrLf & _
"FROM TblPoMaterials t " & vbCrLf & _
"WHERE t.PONumber = [Forms]![FrmProductionEdit]![PONumber] " & vbCrLf & _
" AND t.ProductionDate = [Forms]![FrmProductionEdit]![Zdate] " & vbCrLf & _
" AND t.AcceptedNumber = [Forms]![FrmProductionEdit]![AcceptedProduct] " & vbCrLf & _
" AND t.RejectedNumber = [Forms]![FrmProductionEdit]![RejectedProduct] " & vbCrLf & _
" AND t.Shift = [Forms]![FrmProductionEdit]![Shift];"
DoCmd.RunSQL strSQL
更好(并且更高效),将长 SQL 保存为没有 VBA 语法的存储查询对象(&
、"
、_
或 vbCrLf
)并简单地运行(无需关闭动作查询):
DoCmd.OpenQuery "mySavedDeleteQuery"
【讨论】:
【参考方案2】:关于在我添加 dim x as integer
声明在代码中的错误位置后消失的错误消息,谢谢
【讨论】:
以上是关于执行 vba 查询 ms 访问时出现运行时错误 3075的主要内容,如果未能解决你的问题,请参考以下文章
访问 VBA - 导入 *.CSV 时出现运行时错误 31519。您无法导入此文件
将公式插入单元格 VBA Excel 时出现运行时错误 1004
从 Excel VBA 运行工作参数化 Access SQL 查询 (INSERT INTO) 时出现“需要对象”错误