【问题标题】:In ms access forms how is it possible to search based on values of two text boxes?在 ms 访问表单中,如何根据两个文本框的值进行搜索?
【发布时间】:2018-10-19 20:15:10
【问题描述】:

我有一个带有前端表单的 ms access 数据库,供用户搜索特定记录并相应地更新它们。

我的前端表单包含两个用于搜索的文本框,第一个获取清单编号,第二个获取该清单上的行号。

我有一个按钮,通过使用“构建事件”,我应用了如下逻辑:

Where condition = [Checklist_Number] Like "*" & [Forms]![Verification Form]![txt_chk_no] & "*" AND [Row_Number] Like "*" & [Forms]![Verification Form]![txt_row] & "*"  

它在某些情况下可以正常工作,但并非在所有情况下都正常。 例如,当我输入 1 和 1 时,我需要检查清单 1 和第 1 行。这很好。

但是当我输入 1 和 2 时,我需要检查清单 12 和第 22 行。

我认为因为 12 和 22 包含 1 和 2,

现在我知道逻辑有问题了,请指导我一些逻辑,在那里我可以获得确切的值而不是类似的值。

提前致谢。

已编辑显示通配符。

【问题讨论】:

    标签: ms-access ms-access-forms


    【解决方案1】:

    如果您搜索的字段确实是数字,则去掉 Like 运算符并改用 =。那么你只会得到完整的匹配。

    但是,我很惊讶在您的示例代码中没有使用通配符

    Like '*" & YourFormRef
    您的代码返回多个值...?

    编辑:试试这个 - 它假设你的两个字段都是数字而不是文本。

    Where condition = [Checklist_Number] = " & [Forms]![Verification Form]![txt_chk_no] & " AND 
    [Row_Number] = " & [Forms]![Verification Form]![txt_row] 
    

    【讨论】:

    • 谢谢,但是输入 = 会给出错误消息:表达式输入错误或太复杂而无法计算。
    • 编辑您的问题后,我可以看到您使用的是通配符。因此,您需要删除它们以使用 = 而不是 Like 运算符。
    • 不行,你能把上面语句中的通配符去掉,写出你的版本吗,很好用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多