Numeric Type and VB/ODBC

Started by Bret Sternover 16 years ago2 messagesgeneral
Jump to latest
#1Bret Stern
bret_stern@machinemanagement.com

This may not be the right group, if so, just let me know.

I have a table with a type [numeric].

When executing queries, I get the data which happens to
be (6.5) in this case, but my VB6 function which traps
for nulls (below) returns a null.

If I change it to type [real]. No problems

Function IsNothing(varToTest As Variant) As Integer
' Tests for a "logical" nothing based on data type
' Empty and Null = Nothing
' Number = 0 is Nothing
' Zero length string is Nothing
' Date/Time is never Nothing

IsNothing = True

Select Case VarType(varToTest)
Case vbEmpty
Exit Function
Case vbNull
Exit Function
Case vbBoolean
If varToTest Then IsNothing = False
Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
If varToTest <> 0 Then IsNothing = False
Case vbDate
IsNothing = False
Case vbString
If (Len(varToTest) <> 0 And varToTest <> " ") Then IsNothing =
False
End Select

End Function

Bret Stern

#2Andrei Kovalevski
andyk@commandprompt.com
In reply to: Bret Stern (#1)
Re: Numeric Type and VB/ODBC

You can try

If (IsNumeric(varToTest) And 0 = CDbl(varToTest)) Then IsNothing = True

Bret wrote:

Show quoted text

This may not be the right group, if so, just let me know.

I have a table with a type [numeric].

When executing queries, I get the data which happens to
be (6.5) in this case, but my VB6 function which traps
for nulls (below) returns a null.

If I change it to type [real]. No problems

Function IsNothing(varToTest As Variant) As Integer
' Tests for a "logical" nothing based on data type
' Empty and Null = Nothing
' Number = 0 is Nothing
' Zero length string is Nothing
' Date/Time is never Nothing

IsNothing = True

Select Case VarType(varToTest)
Case vbEmpty
Exit Function
Case vbNull
Exit Function
Case vbBoolean
If varToTest Then IsNothing = False
Case vbByte, vbInteger, vbLong, vbSingle, vbDouble, vbCurrency
If varToTest <> 0 Then IsNothing = False
Case vbDate
IsNothing = False
Case vbString
If (Len(varToTest) <> 0 And varToTest <> " ") Then IsNothing =
False
End Select

End Function

Bret Stern