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

如何在VBA中使用AND运算符对ADO Recordset实现多条件过滤

正确的多条件过滤写法

你之前的两次给Filter赋值的写法会覆盖前一次的过滤条件,而你尝试的多条件写法错误原因是**AND属于过滤条件字符串的一部分,需要放在引号内,和两侧的条件拼接为完整的过滤字符串**,修正后的代码如下:

' 替换原来的两行rst.Filter赋值代码
rst.Filter = "OT = '" & oot & "' AND Parcial = '" & PARCIAL & "'"
rst.Delete

优化建议

  1. 避免单引号语法报错:如果你的oot或PARCIAL变量内容里可能包含单引号,需要先做转义处理:
    rst.Filter = "OT = '" & Replace(oot, "'", "''") & "' AND Parcial = '" & Replace(PARCIAL, "'", "''") & "'"
    
  2. 更高效率的删除方案:不需要打开整个表的记录集再过滤删除,直接执行DELETE SQL语句性能更好、代码更简洁:
    ' 可以直接替换掉rst.Open到rst.Delete之间的所有代码
    Dim delSql As String
    delSql = "DELETE FROM Registro_corte WHERE OT = '" & Replace(oot, "'", "''") & "' AND Parcial = '" & Replace(PARCIAL, "'", "''") & "'"
    cnn.Execute delSql
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:04