天天看点

机房那些事儿---犯错之实时错误‘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  

           

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

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