VB6 null布尔值

时间:2010-06-24 18:52:14

标签: vb6 boolean

我正在使用vb6中的应用程序从数据库中提取信息。我遇到了许多来自数据库中空值的问题,因为vb6函数和子程序不喜欢空值。通过将空字符串连接到值可以轻松解决字符串问题。但是我应该为布尔值应该为的空值做什么?

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

这假设您使用ADO对象进行数据访问。

Dim boolField As Boolean
If Not IsNull(fields("FieldName").value) Then
    boolField = CBool(fields("FieldName").value)
End If   

答案 1 :(得分:1)

尝试使用isnull并指定字段的.value,否则isnull()会检查字段对象(而不是值):

If (IsNull(l_BankAccount.Recordset.Fields("BANKCODE").value) = True) Or _

有关详细信息,请参阅this post

答案 2 :(得分:1)

我正在使用大部分这些函数来处理空值

'--- type-casting without errors'
Public Function C2Str(Value As Variant) As String
    On Error Resume Next
    C2Str = CStr(Value)
    On Error GoTo 0
End Function

Public Function C2Lng(Value As Variant) As Long
    On Error Resume Next
    C2Lng = CLng(Value)
    On Error GoTo 0
End Function

Public Function C2Cur(Value As Variant) As Currency
    On Error Resume Next
    C2Cur = CCur(Value)
    On Error GoTo 0
End Function

Public Function C2Dbl(Value As Variant) As Double
    On Error Resume Next
    C2Dbl = CDbl(Value)
    On Error GoTo 0
End Function

Public Function C2Date(Value As Variant) As Date
    On Error Resume Next
    C2Date = CDate(Value)
    On Error GoTo 0
End Function

Public Function C2Bool(Value As Variant) As Boolean
    On Error Resume Next
    C2Bool = CBool(Value)
    On Error GoTo 0
End Function

您可以在案件中使用C2Bool: - ))

答案 3 :(得分:0)

这是VB6和ASP的一个老问题。我使用Trim(l_BankAccount.Recordset.Fields("BANKCODE").value & " ")来解决许多问题,包括dbNull 对于整数字段CLng("0" & Trim(l_BankAccount.Recordset.Fields("BANKCODE").value & " ")) 的工作原理。