如何使if语句停止运行查询的访问?

时间:2015-05-19 13:20:40

标签: sql database ms-access search-form

我正在使用Microsoft访问权限,我想制作一个基本上做的if语句:

如果搜索条件全部为空白,则打开一个消息框,显示“我写的东西”和一个确定按钮。 ok会让你回到搜索,而不是运行查询。

我的问题是,如果所有搜索条件都留空并且有人点击搜索,则会崩溃访问。所以我想制作一些能阻止某人在空白中运行查询的东西。我使用的表单有6个不同的标准,分别是Standards,Duds,ID,Desc1,Desc2和Excel。

只是为了让每个人都知道,在编码和编写内容时我非常愚蠢,所以如果你能以一种4岁的方式拼出它就会明白它会很棒。

我想要的内容如下:

如果[Forms]![Search]![Standards][Forms]![Search]![CADID]为空,则

MsgBox("You cant do this") - 然后这会将您发回表格

ElseIf

正常运行查询。

目前我的代码看起来有点像:

SELECT DISTINCT Standards.Name, Standards.[Catalog Id], - 然后是一堆其他表及其各自的列

WHERE(((Standards.Name)Like"*"& [Forms]![Search]![Standards] & "*") AND ((Standards.[Catalog ID]) Like "*" & [Forms]![Search]![CADID] & "*"));

我不知道为什么它会在那里结束。在WHERE是文本框之后读取[标准]和[CADID]并在表单中写入。我知道你需要多少细节。

1 个答案:

答案 0 :(得分:1)

不确定您的搜索代码是什么,但这是一个可以使用的模板。将其放在执行搜索的按钮的点击事件中,并确保添加执行搜索的任何代码,而不是我在下面If语句的else部分留下的评论。

If _
    (IsNull([Forms]![Search]![Standards]) Or _
    [Forms]![Search]![Standards] = "") And _
    (IsNull([Forms]![Search]![CADID]) Or _
    [Forms]![Search]![CADID]) = "" _
Then

    MsgBox "Please complete both Standards and CADID fields before searching", vbCritical Or vbOKOnly, "Search Error"

Else

    ' your search code here

End If