天天看點

機房那些事兒---犯錯之實時錯誤‘94’

  最近,在敲操作員工作記錄的時候出現了這樣的錯誤---實時錯誤‘94’無效使用null值。經查詢:資料庫中,某一字段中為空時就顯示NULL,但在VB裡,要顯示這一字段,就會出現實時錯誤94,無效使用NULL的狀況

  針對這個問題,我檢視了下資料庫中的worklog_info表,果真是有空值的地方,但是他為什麼會有空值呢,可以讓他禁止出現空值嗎,這樣的話不就可以防止這種問題的出現了嘛!

  于是乎,我檢視了下worklog_info表中參數的屬性,做法:右擊worklog_info表,選擇設計

機房那些事兒---犯錯之實時錯誤‘94’

  按照表格顯示,各參數都是允許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  

           

解決方案四:直接删除有空值的行

解決方案五:将有空值的地方填上