基于某些标准的SQL查询

时间:2010-08-05 18:59:36

标签: sql

先生,就像在功能上搜索一样

我需要搜索存储在ms访问表中的数据的表。我已经为合同号,用户名和日期创建了一个文本框,需要根据合同号或用户名或日期搜索表。

因为我需要一个编码来解决单个sql命令中的问题。我试过它的帮助是一个表,搜索测试是形式。

当帮助(表).cont_no(字段)等于search-test(表单名称).cont_no(文本框字段)

SELECT * FROM Help WHERE (((Help.cont_no)=[Forms]![search-test]![cont_no])) OR
(((Help.username)=[Forms]![search-test]![username]) or
((Help.date)=[Forms]![search-test]![cbo_date]));

希望你能理解我的观点

1 个答案:

答案 0 :(得分:0)

我想我明白你想要根据这些标准的任意组合进行搜索。我建议你试试这个:

SELECT *
FROM Help
WHERE
    ([Forms]![search-test]![cont_no] = '' OR Help.[cont_no]=[Forms]![search-test]![cont_no])
AND
    ([Forms]![search-test]![username] = '' OR Help.[username]=[Forms]![search-test]![username])
AND
    ([Forms]![search-test]![cbo_date] = '' OR Help.[date]=[Forms]![search-test]![cbo_date])

如果您在其中输入了值,则此查询将搜索搜索框的组合。 如果它们是空白的,则它们将被排除在搜索条件之外。 您可能需要根据字段的“空”状态进行调整。 我假设“空”是一个空白字符串

UPDATE 如果要搜索条件的任何组合,可以使用OR子句,如下所示:

SELECT *
FROM Help
WHERE
    Help.[cont_no]=[Forms]![search-test]![cont_no]
OR
    Help.[username]=[Forms]![search-test]![username]
OR
    Help.[date]=[Forms]![search-test]![cbo_date]