我正在尝试使用组合框过滤子表单。我有什么工作,但它不断提出一个“输入参数值”文本框。当我输入我想要过滤的值时,它搜索子表单没问题。我宁愿不必输入值,因为它会破坏组合框的目的。
这是我的ComboBox代码,
Private Sub ComboFE_AfterUpdate()
On Error GoTo Proc_Error
If IsNull(Me.ComboFE) Then
Me.SubFormPF.Form.Filter = ""
Me.SubFormPF.Form.FilterOn = False
Else
Me.SubFormPF.Form.Filter = "Lead_FE = " & Me.ComboFE
Me.SubFormPF.Form.FilterOn = True
End If
Proc_Exit:
Exit Sub
Proc_Error:
MsgBox "Error " & Err.Number & " in setting subform filter:" & vbCrLf & Err.Description
Resume Proc_Exit
End Sub
我已检查并确保所有名称都正确并且与我表单上的相应项目相符。
任何想法? 非常感谢
答案 0 :(得分:0)
在文本列上应用过滤器时,该值需要引号。
Me.SubFormPF.Form.Filter = "Lead_FE = '" & Me.ComboFE & "'"
要避免在值本身包含引号时出现问题,请在此处使用Gustav的CSql()
函数:https://stackoverflow.com/a/36494189/3820271
Me.SubFormPF.Form.Filter = "Lead_FE = " & CSql(Me.ComboFE.Value)
这适用于所有数据类型。