使用过滤器后空白字段不可见的记录

Posted

技术标签:

【中文标题】使用过滤器后空白字段不可见的记录【英文标题】:Record with blank field not visible after using filter 【发布时间】:2016-07-26 16:44:23 【问题描述】:

II 制作访问数据库。我有一个带有子表单和几个组合框的表单,可用作数据过滤器。当表格中有一个空白字段时,它不会显示我的过滤器编码是

Function searchcriteria()
Dim device, vlan As String
Dim task, strciteria As String


If IsNull(Me.cbodevice) Then
device = "[DEVICE NAME] like '*'"
Else
device = "[DEVICE NAME]= '" & Me.cbodevice & "'"
End If


If IsNull(Me.cbovlan) Then
vlan = "[VLAN ID] like '*'"
Else
vlan = "[VLAN ID]= '" & Me.cbovlan & "'"
End If
strcriteria = device & "And" & vlan
task = "select * from L2PORTDETAILS where " & strcriteria
Me.L2PORTDETAILS_subform.Form.RecordSource = task
Me.L2PORTDETAILS_subform.Form.Requery


End Function]

【问题讨论】:

【参考方案1】:

设置Filter属性可能更简单:

Function SearchCriteria()

    ' Preset Me!L2PORTDETAILS_subform.Form.RecordSource to:
    ' "select * from L2PORTDETAILS"

    Dim Filter As String

    If Not IsNull(Me!cbodevice.Value) Then
        Filter = "[DEVICE NAME]= '" & Me!cbodevice.Value & "'"
    End If       
    If Not IsNull(Me!cbovlan.Value) Then
        If Filter <> "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "[VLAN ID] = '" & Me!cbovlan.Value & "'"
    End If
    With Me!L2PORTDETAILS_subform.Form
        .Filter = Filter
        .FilterOn = (Filter <> "")
    End With

End Function

【讨论】:

亲爱的 Gustav 在哪里写这段代码是一个函数搜索条件,我是 vba 新手,请解释一下。你所说的过滤器属性是什么意思。 写在你已经有之前代码的地方。 Filter 属性是表单的属性。研究在线帮助或浏览其他示例。 亲爱的我很抱歉再次问你。记录源在哪里?如果我有两个以上的过滤器,它会起作用 RecordSource 是子表单(选项卡数据)的另一个属性。是的,所示代码将尊重一个或两个过滤器值。但听起来你真的需要学习一个教程(免费浏览)才能开始。 我用这个代码替换了我发布的代码,但它不起作用请帮助我解决

以上是关于使用过滤器后空白字段不可见的记录的主要内容,如果未能解决你的问题,请参考以下文章

在 Google 表格中使用过滤器后忽略空白单元格

将数据添加到主表上的多个记录的链接表中

NetSuite Advanced PDF - 使用记录中的多选字段过滤项目表列表

distinct mysql过滤重复记录

VBA过滤后选择可见单元格

仅对过滤/可见数据求和 VBA