如果......不明白

时间:2012-03-07 16:34:40

标签: sql ms-access vba

我有一大段代码,除非出现用户错误,否则一切正常。 用户必须在其中放入值的文本框,然后单击按钮以更新表。

如果用户将该框留空并单击该按钮,则弹出一个msg框,要求他们填写一个值,如果该框包含一个值,则运行一系列命令和SQL。

不幸的是,当该框保留为空白时,会弹出msg框,但无论如何命令和SQL都会运行。

我想我可能只是遗漏了一些非常明显的东西,但我无法理解它。这是导致我出现问题的代码块......

If IsNull(Me.TxtStockValue) Then MsgBox "Please Select An Item To Update Stock And Ensure A Value Has Been Entered" Else:
DoCmd.RunSQL SQLDelete1
DoCmd.SetWarnings False
DoCmd.RunSQL SQLStory
DoCmd.RunSQL SQLDelete2
DoCmd.RunSQL SQLUpdate
DoCmd.SetWarnings True

txtStockValue是txt框,不能为空。其他似乎没有按照我想要的方式运作。

由于

萨姆

1 个答案:

答案 0 :(得分:6)

试试这个 - 在你的版本中只有第一个语句(SQLDelete1)是else的一部分,其余的总是被执行。

If IsNull(Me.TxtStockValue) Then
    MsgBox "Please Select An Item To Update Stock And Ensure A Value Has Been Entered"
Else
    DoCmd.RunSQL SQLDelete1
    DoCmd.SetWarnings False
    DoCmd.RunSQL SQLStory
    DoCmd.RunSQL SQLDelete2
    DoCmd.RunSQL SQLUpdate
    DoCmd.SetWarnings True
End If