使用组合框过滤子表单

Filter subform by using combo box

我在表单上有一个组合框,我想过滤子表单 (SubSearchMaster_frm)。

我收到:

Runtime error 3464: data type mismatch in expression.

代码如下:

Private Sub CboNIIN_AfterUpdate()
    Me.SubSearchMaster_frm.Form.Filter = "[NIIN] = " & Me.CboNIIN
    Me.SubSearchMaster_frm.Form.FilterOn = True
End Sub

子表单是一个查询。

我也试过:

Private Sub CboNIIN_AfterUpdate()
    Dim sql As String
    sql = "Select * from SubSearchMaster_frm where ([NIIN] = " & Me.CboNIIN & ") From subsearchmaster_frm"
    Me.SubSearchMaster_frm.Form.RecordSource = sql
    Me.SubSearchMaster_frm.Form.Requery
End Sub

但我也遇到了错误。

由于您已声明 NIIN 字段是 Text 数据类型,因此您需要用单引号或双引号将过滤器值括起来,否则您将收到熟悉的数据类型不匹配错误消息。

例如:

Me.SubSearchMaster_frm.Form.Filter = "[NIIN] = '" & Me.CboNIIN & "'"

没有引号,提供的是数值,因此导致数据类型不匹配。