在VBA中应用包含单引号的数据的过滤器

时间:2015-10-13 16:32:43

标签: vba ms-access filter access-vba

我一直在尝试使用一个简单的过滤器来处理一个表单,它根据我的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  

当前测试数据中有两个实例,其中Employee Name具有单引号,例如例如奥马利。这导致查询中的'语法错误(缺少运算符)

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

1 个答案:

答案 0 :(得分:0)

使用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