执行vba查询ms访问时出现运行时错误3075
大家好,当我尝试执行RunSql方法时,我遇到了这个错误,这是我的查询执行vba查询ms访问时出现运行时错误3075,vba,ms-access,Vba,Ms Access,大家好,当我尝试执行RunSql方法时,我遇到了这个错误,这是我的查询 Dim x As Integer Dim strSQL As String x = Me.PONumber strSQL = "DELETE TblPoMaterials.PONumber, TblPoMaterials.ProductionDate, TblPoMaterials.AcceptedNumber, TblPoMaterials.RejectedNumber, TblPoMateria
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
我知道这不对,但我只是想看看会发生什么,它产生了一个不同的运行时错误。
提前感谢关于错误消息,在我添加了
dim x as integer后它就消失了
声明在代码中的位置不正确感谢只需像其他表单控件一样在查询中包含x
值作为参数。这样可以避免任何连接。下面假定Me.PONumber
是FrmProductionEdit
上的控件。如果没有,请调整为正确的表单名称。此外,DELETE
子句中的列是多余的,因为行是根据WHERE
逻辑删除的,而与列出的列无关。最后,使用表别名来避免长表名的重复,并删除多余的括号
strSQL=“DELETE”&vbCrLf&_
“来自TblPoMaterials t”&vbCrLf&_
“其中t.PONumber=[Forms]![FrmProductionEdit]![PONumber]”&vbCrLf&_
“和t.ProductionDate=[Forms]![FRMPProductionEdit]![Zdate]”&vbCrLf&_
“和t.AcceptedNumber=[Forms]![FRMPProductionEdit]![AcceptedProduct]”&vbCrLf&_
“和t.RejectedNumber=[Forms]![FRMPProductionEdit]![RejectedProduct]”&vbCrLf&_
“和t.Shift=[Forms]![FrmProductionEdit]![Shift];”
DoCmd.RunSQL strSQL
更好(也更有效)的方法是,将长SQL保存为不带VBA语法的存储查询对象(&
,“
,,
,或vbCrLf
)并简单运行(无需关闭操作查询):
编辑问题以显示准确的错误消息。PONumber是数字类型字段吗?如果不是,则需要撇号分隔符:='“&x&“)
。或以与其他参数相同的方式引用PONumber参数。PONumber字段是number,关于在我将dim x添加为整数后出现的错误消息声明在代码中的错误位置谢谢这是否回答了您的问题?
DoCmd.OpenQuery "mySavedDeleteQuery"