【问题标题】:Applying Filter in VBA with data including Single Quotes在 VBA 中使用包含单引号的数据应用过滤器
【发布时间】:2015-10-13 16:32:42
【问题描述】:

我一直试图让一个简单的过滤器在一个表单上工作,它根据我的 Access DB 中的两列应用过滤器。

Private Sub cmb_Name_AfterUpdate()  
Me.cmb_WorkCity.Requery  
DoCmd.ApplyFilter , "[Employee Name]='" & Me.cmb_Name.Column(0) & "' And [Movement Type]='" & Me.cmb_Name.Column(1) & "'"  
End Sub  

当前测试数据中有两个实例,其中员工姓名有单引号,例如以奥马利为例。这会导致查询中出现“语法错误(缺少运算符)

关于如何解决此问题的任何想法?

【问题讨论】:

    标签: ms-access filter vba


    【解决方案1】:

    使用Replace() 将员工姓名中的每个单引号替换为两个单引号。

    Private Sub cmb_Name_AfterUpdate()
    Dim strFilter As String
    Me.cmb_WorkCity.Requery
    'DoCmd.ApplyFilter , "[Employee Name]='" & Me.cmb_Name.Column(0) & "' And [Movement Type]='" & Me.cmb_Name.Column(1) & "'"
    strFilter = "[Employee Name]='" & Replace(Me.cmb_Name.Column(0), "'", "''") & _
        "' And [Movement Type]='" & Me.cmb_Name.Column(1) & "'"
    Debug.Print strFilter ' <- view in Immediate window; Ctrl+g will take you there
    DoCmd.ApplyFilter , strFilter
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 2021-03-17
      • 2017-01-12
      相关资源
      最近更新 更多