最近,在敲操作員工作記錄的時候出現了這樣的錯誤---實時錯誤‘94’無效使用null值。經查詢:資料庫中,某一字段中為空時就顯示NULL,但在VB裡,要顯示這一字段,就會出現實時錯誤94,無效使用NULL的狀況
針對這個問題,我檢視了下資料庫中的worklog_info表,果真是有空值的地方,但是他為什麼會有空值呢,可以讓他禁止出現空值嗎,這樣的話不就可以防止這種問題的出現了嘛!
于是乎,我檢視了下worklog_info表中參數的屬性,做法:右擊worklog_info表,選擇設計
按照表格顯示,各參數都是允許Null值的,但是隻要在查詢過程中遇到空值的話就會報錯
解決方案一:最簡單的方法就是将所有參數的允許Null值取消打勾,就是不允許有空值,但是這樣做的缺點是填充表格的時候必須每個空都有值。
解決方案二:
http://blog.csdn.net/sun15732621550/article/details/47154103
按照作者的說法,如果出現報錯的情況,隻需在有空值的參數後面加上“&”就可以了
Do While Not mrc.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = mrc.Fields(0)
.TextMatrix(.Rows - 1, 1) = mrc.Fields(1)
.TextMatrix(.Rows - 1, 2) = mrc.Fields(2)
.TextMatrix(.Rows - 1, 3) = mrc.Fields(3)
.TextMatrix(.Rows - 1, 4) = mrc.Fields(4)
.TextMatrix(.Rows - 1, 5) = mrc.Fields(5) & ""
.TextMatrix(.Rows - 1, 6) = mrc.Fields(6) & ""
.TextMatrix(.Rows - 1, 7) = mrc.Fields(7)
.TextMatrix(.Rows - 1, 8) = mrc.Fields(8) '顯示True或是False
mrc.MoveNext
Loop
解決方案三:
http://blog.csdn.net/u010928364/article/details/17209191
為了保證字段為空時不報錯,則出現一個語句來判斷該字段是否為空,為空則顯示“ ”,否則顯示這個字段的内容。
If IsNull(mrc.Fields(5)) Then
.TextMatrix(.Rows - 1, 3) = ""
Else
.TextMatrix(.Rows - 1, 3) = mrc.Fields(5).Value '登出日期
End If
If IsNull(mrc.Fields(6)) Then
.TextMatrix(.Rows - 1, 4) = ""
Else
.TextMatrix(.Rows - 1, 4) = mrc.Fields(6).Value '登出時間
End If
If IsNull(mrc.Fields(7)) Then
.TextMatrix(.Rows - 1, 5) = ""
Else
.TextMatrix(.Rows - 1, 5) = mrc.Fields(7).Value '機器名
End If
解決方案四:直接删除有空值的行
解決方案五:将有空值的地方填上