2016-07-28 36 views
0

我正在使用Access數據庫,並且需要要求ScrapAmount1在將數據放入ScrapCodes1中時有答案。我想要彈出一個錯誤消息,提醒他們使廢品數量高於0.我使用的是VBA,這是我無法使用的。 PS。 ScrapCodes1是一個可供選擇的下拉列表,默認情況下ScrapAmount爲0。。如果另一個字段已被回答,如何要求字段

Private Sub Form_BeforeUpdate(Cancel As Integer) 
If Me.ScrapCodes1 Then 
    If Nz(Me.ScrapAmount1, "") = "" Then 
      Cancel = True 
      MsgBox "If Scrap Code is selected, then Scrap Amount must have a value.", vbExclamation, "Data Required" 
    End If 
End If 

End Sub 

Thank you for your answers in advance. :) 

回答

0

我不認爲你需要什麼不止:

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    If Me.ScrapAmount1= 0 Then 
      Cancel = True 
      MsgBox "If Scrap Code is selected, then Scrap Amount must have a value.", vbExclamation, "Data Required" 
    End If  
End Sub 
+0

Hi @Random_answer_guy!謝謝您的回答!這很好!我使用這個代碼,它完美的工作!非常感謝! '私人小組Form_BeforeUpdate(取消作爲整數) 如果Me.ScrapAmount1 = 0然後 取消=真 MSGBOX「如果選擇廢料碼,然後廢料量必須有一個值。」,vbExclamation,「數據所需」 完如果 End Sub' – Flammie

+0

是的,它不是條件的,因爲默認值,它永遠不會爲空。但是,刪除默認值可能會更好(因爲0實際上是一個值),然後將檢查更改爲「If IsNull(Me.ScrapAmount)Then」,然後提示輸入正確的值。 –

+0

只是擡起頭來,如果他刪除了默認的0並且沒有輸入新的數字(返回null),它將會拋出一個錯誤。您應該在文本框的代碼(強制用戶輸入數字,或將空值變爲0)或讀取值(再次說明空值的可能性)的某個位置考慮這種可能性。 – CyberClaw

0

您是否正在使用Nz來檢查ScrapAmount1是否爲空。 ScrapAmount1默認爲0,所以它不爲空。

我有第二個if條件自己:

'check for null 
If Nz(Me.ScrapAmount1, "") = "" Then 
     Cancel = True 
     MsgBox "If Scrap Code is selected, then Scrap Amount must have a value.", vbExclamation, "Data Required" 
'checks for 0 and negative numbers 
ElseIf Me.ScrapAmount1 <= 0 then 
    Cancel = True 
    MsgBox "Scrap Amount must be higher than 0" 
End If 

If Cancel then 
    'do cancel stuff, I have no idea what you use this var for 
end if 
+0

嗨Cyber​​Claw。謝謝你的回答!這是有道理的,我的默認「0」會使該字段不爲空。我試過你的代碼,它給了我一個錯誤,說**編譯錯誤:必須是第一條語句在行**和代碼行'Else If Me.ScrapAmount1 <= 0 Then'點亮紅色。我嘗試了沒有Else,它仍然給我一個編譯錯誤。 – Flammie

+0

對不起,我的壞。在VBA中,它是'elseif'(一個詞)和'end if'(單詞)。我傾向於混合起來。記住'elseif'的更好方法是一起的,因爲它只用於'if',所以它只是一個命令。另一方面,'end'用於很多事情,所以'end'如果是單獨的,因爲命令'end'可以用於'if','sub'等。 – CyberClaw

相關問題