我使用MS Access作爲SQL Server 2012的前端,在將更新傳遞到服務器之前測試字段中的空值並向用戶顯示有用的消息。IsNull總是返回false
我使用BeforeUpdate
事件中的If IsNull
以及一些奇特的重複檢查,可以在一個字段中正常工作。但是,對另一個變量實施相同的代碼時,IsNull
始終評估爲false。
我試着剔除所有有用的代碼,只是使用IsNull
一個消息框:
If IsNull(Me.M_RN) Then
MsgBox "null!"
Else
MsgBox "Not null!"
End If
此代碼總是返回「沒有空!」。如果我將其反轉並使用:
If not IsNull(Me.M_RN) Then
MsgBox "Not null!"
Else
MsgBox "null!"
End If
它仍然返回「Not null!」每次。我還嘗試了其他事件狀態,例如Change
,KeyUp
和Dirty
。無論事件如何,IsNull
都會返回false。
這些字段的Form對象具有相同的屬性。我可以看到的唯一區別是工作變量格式爲numeric(18,0)
,未編制索引,而非工作變量格式爲int
,並且具有唯一索引。
如果我刪除所有的代碼,我得到You tried to assign the Null value to a variable that is not a Variant data type
更新錯誤。
錯誤發生在哪條線上? –
@ Nick.McDermaid我不確定你的意思;這不是一個編譯錯誤,所以它不顯示它搞砸了哪一行。 – Rominus
@McNets這不是有效的vba,不會做任何事情 – Rominus