1 sql ms-access ms-access-2010
我在 Access 中有一个表单,我在其中运行基于多个文本框的查询。我对从文本框拉出的几个查询字段应用条件,但希望当文本框为空白时查询忽略条件。
例如,如果 Machine_TextBox 为空,则不要将条件应用于 Events.Machine 字段。
SQL代码是:
SELECT Events.Machine, Events.[Event Date], Events.[Event Description],
Events.[Action Taken], Events.[Machine Clinical], Events.[Modalities Not Clinical],
Events.[Manufacturer Ticket #], Events.[TLC Ticket #], Events.FSR, Events.ID,
Events.[Event Recorded By], Events.[Action Recorded By], Events.[Downtime Validation],
Events.[Event Time]
FROM Events
WHERE (((Events.Machine)=IIf([Forms]![SearchEvent]![Machine_TextBox] Is Null,"",
[Forms]![SearchEvent]![Machine_TextBox])) AND ((Events.[Event Date]) Between
Nz([Forms]![SearchEvent]![StartDate_TextBox],#1/1/1900#) And Nz([Forms]![SearchEvent]![EndDate_TextBox],#1/1/2100#))
AND ((Events.[Event Description]) Like "*" & [Forms]![SearchEvent]![EventDetails_TextBox])
AND ((Events.[Manufacturer Ticket #])=[Forms]![SearchEvent]![Manufacturer_TextBox])
AND ((Events.[TLC Ticket #])=[Forms]![SearchEvent]![TLC_TextBox])
AND ((Events.FSR)=[Forms]![SearchEvent]![FSR_TextBox]))
OR (((Events.Machine)=IIf([Forms]![SearchEvent]![Machine_TextBox] Is Null,"",[Forms]![SearchEvent]![Machine_TextBox]))
AND ((Events.[Event Date]) Between Nz([Forms]![SearchEvent]![StartDate_TextBox],#1/1/1900#)
AND Nz([Forms]![SearchEvent]![EndDate_TextBox],#1/1/2100#))
AND ((Events.[Action Taken]) Like "*" & [Forms]![SearchEvent]![EventDetails_TextBox])
AND ((Events.[Manufacturer Ticket #])=[Forms]![SearchEvent]![Manufacturer_TextBox])
AND ((Events.[TLC Ticket #])=[Forms]![SearchEvent]![TLC_TextBox])
AND ((Events.FSR)=[Forms]![SearchEvent]![FSR_TextBox]))
ORDER BY Events.[Date and Time Stamp] DESC;
Run Code Online (Sandbox Code Playgroud)
此致,
标记
您可以尝试这里描述的技术。
对于每个搜索框,使用布尔逻辑来过滤其值,或者通过使 AND 子句为 TRUE 来忽略此 AND 子句(如果它为空)。
我将仅使用两个搜索框作为示例:
SELECT stuff
FROM Events
WHERE ((Events.Machine = [Forms]![SearchEvent]![Machine_TextBox])
OR ([Forms]![SearchEvent]![Machine_TextBox] Is Null))
AND ((Events.[Event Description] Like "*" & [Forms]![SearchEvent]![EventDetails_TextBox] & "*")
OR ([Forms]![SearchEvent]![EventDetails_TextBox] Is Null))
AND ...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8052 次 |
最近记录: |