【问题标题】:How to display record even if field is null in db table when click search单击搜索时即使数据库表中的字段为空,如何显示记录
【发布时间】:2018-10-04 01:51:21
【问题描述】:

我有包含所有数据的主表。如果组合中使用的字段之一为空,则该记录不会显示在表单中。 但是如果我将任何数据放在用作组合的字段中..然后显示获取记录。

在我的表单中,我有一个 empl_namecomp_name 的组合,搜索并清除 btn。

在表单中搜索 btn 是一个嵌入的宏

[Emp_name] Like "*" & [Forms]![FrmTestSearch]![Combo224] & "*" And
[comp_name] Like "*" & [Forms]![FrmTestSearch]![Combo303]

例如,如果我从组合框值中选择 empl_name 作为“tim”。当单击搜索 btn 时,仅显示记录 1 而不是 tim 的 3 条记录。 由于 DB 中的 comp_name 字段为空,因此不显示其他 2 个空记录

Data in table 'tbl_empl'
id| Empl_name | comp_name | type
1 | tim       | abcd      |  A
2 | tim       |           |  
3 | tim       |           |

即使某些字段为空,如何显示记录?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    你可以使用表达式

    [Emp_name] Like "*" & [Forms]![FrmTestSearch]![Combo224] & "*" And
    (IsNull([comp_name]) OR Nz([comp_name]) Like "*" & [Forms]![FrmTestSearch]![Combo303])
    

    如果组合框在同一个表单上,您应该能够使用Me![Combo224] 而不是[Forms]![FrmTestSearch]![Combo224] 访问它们。

    【讨论】:

    • 谢谢!上面的表达式工作正常....但是有没有办法把它放在事件过程-vba 代码中?我正在添加更多组合框,并且它在应用过滤器宏条件中得到了有限的错误。所有 6 个字段都可以为空。可以按 emp_name、comp_name、status、type、category、sign 进行搜索。
    • 你想要做什么它创建一个私有 vba 子,测试你的组合框和其他过滤器相关控件的值或 null 并将过滤器构建为文本字符串,然后将其分配给表单和重新查询.然后为影响过滤器的每个控件的更新后事件调用该函数。
    • 这样写但出现错误..“编译错误:预期:行号或标签或语句或语句结尾” Dim strSearchCriteria As Variant strSearchCriteria = Null strSearchCriteria = "NZ([emp_name], "") Like " * " & [Forms]![FrmTestSearch]![Combo224] &"'" And NZ([comp_name],"") Like "" & [Forms]![FrmTestSearch ]![Combo303] & "" And NZ([Status],"") Like "" & [Forms]![FrmTestSearch]![Combo311] & "" And NZ([ type],"") Like "" & [Forms]![FrmTestSearch]![Combo317] & "" And NZ([sign],"") Like "" & [ Forms]![FrmTestSearch]![Combo319]) & "'" end
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2016-05-11
    • 2014-10-13
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    相关资源
    最近更新 更多