【发布时间】:2011-12-20 16:00:24
【问题描述】:
我正在使用 Access 2010。
我正在构建一个数据库,让我的组织可以对城市中的空白墙进行分类——包括它们的位置、它们面向的方向、相邻地块是空置还是被占用等。这些信息存储在一个名为 WallsMaster 的表中.
这是我的查询。
SELECT WallsMaster.StreetAddress, WallsMaster.Zip, WallsMaster.Direction, WallsMaster.LotInfo
FROM WallsMaster
WHERE
(
((WallsMaster.Zip) Like "*" & [Forms]![Search_Form]![Zip_Search]
Or
(WallsMaster.Zip)=""
Or
(WallsMaster.Zip) Is Null)
AND
((WallsMaster.Direction) Like "*" & [Forms]![Search_Form]![Direction_Search]
Or
(WallsMaster.Direction)=""
Or
(WallsMaster.Direction) Is Null)
AND
((WallsMaster.LotInfo) Like "*" & [Forms]![Search_Form]![LotInfo_Search]
Or
(WallsMaster.LotInfo)=""
Or
(WallsMaster.LotInfo) Is Null)
)
;
当我为 Zip 输入一个值但将其他参数留空时,我想要的是 all 方向和 LotInfo 值(包括空值/空白)仅适用于该 zip(不包括空值/空白 Zip 值)。当我输入 Direction 但将其他留空时,我希望该 Direction 的所有 Zip 和 LotInfo 值(包括 null/空白)(不包括 null/blank Direction 值),等等 LotInfo。
执行此操作时得到的结果包括 参数我留空,但也包括空值/空白 我已经指定了搜索参数的字段。
即,如果我搜索 Zip 19130 并将 Direction & LotInfo 留空,我会得到:
Address,Zip,Direction,LotInfo
123 Main St, 19130, South, Vacant
456 Elm St, , North, Vacant
789 Fake St, 19130, , ,
321 K St, 19130, East, Occupied
我想要的是这个:
Address, Zip, Direction, LotInfo
123 Main St, 19130, South, Vacant
789 Fake St, 19130, ,
321 K St,19130, East, Occupied
- 如何重新编写我的 SQL 脚本以获得我想要的结果?
- 为了这个例子,我只分享几个字段。我真正的 WallMaster 表有大约 30 个字段和数百条记录,我希望我的搜索表单一次搜索任何/所有这些字段。这是编写此搜索的最有效方式吗?
【问题讨论】:
标签: sql ms-access search parameters