2012-03-07 58 views
0

我有一个很大的代码段,并且它都可以工作,除非有用户错误。 有一个用户必须输入值的文本框,然后单击按钮更新表格。If..Else不理解

如果用户将框留空并单击该按钮,会弹出一个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

这正是我已经提供了在http://stackoverflow.com/questions/9514474/query-syntax-error/9514535#9514535解决同样的问题。此外,我强烈建议您使用Execute,而不是RunSQL并设置警告。您是否打算忽略所有建议并继续发布问题,直到您得到一个您认为可接受的答案并允许您避免所有想法? – Fionnuala 2012-03-07 17:24:43

回答

6

试试这个 - 你的版本只第一条语句(SQLDelete1)是的其他部分,剩下的总是执行。

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 
+0

谢谢:)完美 – 2012-03-07 17:09:39