我一直在尝试使用一个简单的过滤器来处理一个表单,它根据我的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具有单引号,例如例如奥马利。这导致查询中的'语法错误(缺少运算符)
有关如何解决此问题的任何想法?
答案 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