最近,在敲操作员工作记录的时候出现了这样的错误---实时错误‘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
解决方案四:直接删除有空值的行
解决方案五:将有空值的地方填上