关于无效值null的问题!

iprometheus 2008-12-14 08:41:00
今天做vb实验,编译的时候出现了“无效使用null”的错误,后来查了一下是说数据库的数据录得不完整的原因,不过应该有容错的功能的,这才会减少程序为不可预知的错误来处理,现在请问各位大虾。
有哪位同志能尽可能多的、系统的把NULL的处理功能给小弟列出来,小弟不胜感激(现在仅知道一种)。
1、Public Function checkNull(S As Variant)As String
checkNull=IIf(IsNull(S),"",S)
End Function
余下的希望大家能帮忙总结一下啦,也希望总结能对大家有帮助!
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
现在还是人类 2008-12-14
  • 打赏
  • 举报
回复
楼上的方法很好,但仅限制与 字符串类型和变体类型的处理
如果换成数字类型与变体类型就不是很好用了。
做成函数好一点,不管原来是什么类型都容易调用
看看以下范例

'通过设置InitNULL函数的 RetType和DefaultValue参数的值可以分别返回字符串、数字、对象等类型和默认返回值
Private Sub Form_Load()
Dim V As Variant
Dim S As String
Dim L As Long
Dim O As Object
V = Null
S = InitNULL(V) '默认为返回字符串类型,默认返回值是空值""
MsgBox "测试 InitNULL(V):" & S

S = InitNULL(V, , "默认文本") '默认为返回字符串类型,默认返回值设置为"默认文本"
MsgBox "测试 InitNULL(V, , ""默认文本""):" & S

L = InitNULL(V, 1) '设置返回为数字类型,默认返回值为0
MsgBox "测试 InitNULL(V, 1):" & L

L = InitNULL(V, 1, 138) '设置返回为数字类型,默认返回值设置为138
MsgBox "测试 InitNULL(V, 1):" & L

Set O = InitNULL(V, 2) '设置返回为对象类型,默认返回值为Nothing
MsgBox "测试 InitNULL(V, 2):" & (O Is Nothing)

Set O = InitNULL(V, 2, Me) '设置返回为对象类型,默认返回值为当前窗口对象
MsgBox "测试 InitNULL(V, 2):" & O.Caption
End Sub

Private Function InitNULL(hValue As Variant, Optional RetType As Long = 0, Optional DefaultValue As Variant = "") As Variant
Select Case RetType
Case 0: InitNULL = IIf(VarType(hValue) = vbNull, DefaultValue, hValue)
Case 1:
DefaultValue = IIf(IsNumeric(DefaultValue), DefaultValue, 0)
InitNULL = IIf(VarType(hValue) = vbNull, DefaultValue, IIf(IsNumeric(hValue), hValue, DefaultValue))
Case 2:
Set DefaultValue = IIf(IsObject(DefaultValue), DefaultValue, Nothing)
Set InitNULL = IIf(IsObject(hValue), hValue, DefaultValue)
End Select
End Function
饮水需思源 2008-12-14
  • 打赏
  • 举报
回复
text1.text=rs!字段名 & ""
wap21 2008-12-14
  • 打赏
  • 举报
回复
帮顶
zzyong00 2008-12-14
  • 打赏
  • 举报
回复
查询出来的记录的字段直接连个 ""就行了

7,786

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧