Sql 使用VBA从Access中删除数据
我试图在VBA中删除当前Access数据库中的所有记录,其中Sql 使用VBA从Access中删除数据,sql,ms-access,vba,ms-access-2000,Sql,Ms Access,Vba,Ms Access 2000,我试图在VBA中删除当前Access数据库中的所有记录,其中OTP=txtOTP.value和VARIABLE={noadministrats,teladministrats,telecodministrats,[…]) 这是我的密码: Dim查询作为记录集 设置query=CurrentDb.Execute(“DELETE*FROM tb_SOMMAIRE WHERE OTP='”&txtOTP.value&“”,以及(变量='NoAdminContrats'或变量='TitreAdminCo
OTP=txtOTP.value
和VARIABLE={noadministrats,teladministrats,telecodministrats,[…])
这是我的密码:
Dim查询作为记录集
设置query=CurrentDb.Execute(“DELETE*FROM tb_SOMMAIRE WHERE OTP='”&txtOTP.value&“”,以及(变量='NoAdminContrats'或变量='TitreAdminContrats'或变量='UnitAdminContrats'或变量='AdrAdminContrats'或变量='VilleAdminContrats'或变量='TelAdminContrats'或变量='CourriedMinContrats'))
我在尝试使用OpenRecordset时遇到错误3219无效操作,或者在尝试使用Execute时遇到预期函数。我尝试了很多方法,但尚未成功使此查询工作。我的记录集中也有完整的表,使用myRecordset.Delete是否更容易/更快?如果是,我该如何操作
编辑
现在尝试使用CurrentDb.Execute而不是CurrentDb.OpenRecordset。错误现在是预期的函数,而不是无效操作。最终成功使其工作。出于某种原因,必须为查询声明另一个变量
Dim sql作为字符串
sql=“DELETE*FROM tb_SOMMAIRE WHERE OTP='”&txtOTP.value&“AND(VARIABLE='noadministrats'或VARIABLE='titreadmincontracts'或VARIABLE='unitadministrats'或VARIABLE='adradmincontracts'或VARIABLE='teladministrats'或VARIABLE='telecadministrats'或VARIABLE='courrieadmincontracts')”
CurrentDb.executesql
您已经解决了问题。祝贺您。查看您的WHERE
子句的不同方法是否更易于使用
WHERE
子句检查VARIABLE
是否与值列表匹配。不必使用多个或
条件将变量
与列表中的每个成员进行比较,只需询问db引擎值列表中是否存在变量
AND
(
[VARIABLE] IN
(
'NomAdminContrats',
'TitreAdminContrats',
'UnitAdminContrats',
'AdrAdminContrats',
'VilleAdminContrats',
'TelAdminContrats',
'TelecAdminContrats',
'CourrielAdminContrats'
)
)
除非您希望发送
execute
函数选项和查询,否则不应在记录集.execute
函数中使用括号
currentDB.Execute ("SQL EXECUTABLE QUERY", Options)
选项是可包含在函数中的可选常量,例如dbDenyWrite或dbFailOnError。如果在执行函数中不包含选项,Microsoft将使用默认的dbunconsistent,并且不应使用括号
Set query = CurrentDb.Execute "DELETE * FROM tb_SOMMAIRE..."
当您使用变量
sql
时,代码工作的原因是您在使用变量时没有使用parantises。对于DELETE
语句,它不应该是CurrentDb.Execute
。…它也不工作,带括号(CurrentDb.Execute()
)我得到一个错误“预期函数”没有括号,我得到了一个语法错误。最后,谢谢你。我将在下面发布最终代码。由于这个答案比我的解决方法更准确,我将把它设置为可接受的答案。然而,在这一点上,标题有点误导,因为它不是VBA中特定函数的问题,而是对我来说,这是一个语法问题。任何人都可以随意编辑。谢谢你,尽管已经3年多了,哈哈。