【发布时间】:2019-04-29 21:36:46
【问题描述】:
我有一个“搜索”表单,允许用户输入位置、日期或 ID。此表单生成三个查询,如果没有为该类别输入搜索词,则返回适当的结果或所有记录。我打算进行第四个查询,该查询取前三个的交集,但无法使其工作。我已经查看了有关使用 SQL INNER JOIN 函数的类似问题,但无法使其工作。我的三个查询中的每一个的 SQL 如下所示。 (或者,如果有更好的方法,请告诉我。我尝试在一个查询中完成所有操作,结果一团糟)。
Qry_ByDate:
SELECT tbl_AssyMoves.[Assy ID], tbl_AssyMoves.[From ICA], tbl_AssyMoves.[From Loc], tbl_AssyMoves.[To ICA], tbl_AssyMoves.[To Loc], tbl_AssyMoves.Date, tbl_AssyMoves.Comments
FROM tbl_AssyMoves
WHERE (((tbl_AssyMoves.Date) Between [Forms]![Form1]![StartDate] And [Forms]![Form1]![EndDate]))
Qry_ByLoc:
SELECT tbl_AssyMoves.[Assy ID], tbl_AssyMoves.[From ICA], tbl_AssyMoves.[From Loc], tbl_AssyMoves.[To ICA], tbl_AssyMoves.[To Loc], tbl_AssyMoves.Date, tbl_AssyMoves.Comments
FROM tbl_AssyMoves
WHERE (((tbl_AssyMoves.[From ICA]) Like Forms!Form1!Combo_ICA) And ((tbl_AssyMoves.[From Loc]) Like Forms!Form1!Txt_Loc)) Or (((tbl_AssyMoves.[To ICA]) Like Forms!Form1!Combo_ICA) And ((tbl_AssyMoves.[To Loc]) Like Forms!Form1!Txt_Loc))
Qry_ByID:
SELECT tbl_AssyMoves.[Assy ID], tbl_AssyMoves.[From ICA], tbl_AssyMoves.[From Loc], tbl_AssyMoves.[To ICA], tbl_AssyMoves.[To Loc], tbl_AssyMoves.Date, tbl_AssyMoves.Comments
FROM tbl_AssyMoves
WHERE (((tbl_AssyMoves.[Assy ID]) Like [Forms]![Form1]![txt_AssyID]))
【问题讨论】:
-
没有通配符,
LIKE是多余的,甚至可能会影响性能。请改用=。