By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,995 Members | 1,276 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,995 IT Pros & Developers. It's quick & easy.

Puzzling "isNull" failing

P: n/a
I have used isNull statement for as long as I have used VB..

Recently I am devugging a program and it is very clear that the "IsNull"
function sometimes would return a true even when the value is not Null. Any
wild shot or theory as to why this is happening is appreciated. Also, any
other alternative is appreciated since I am stuck and cannot proceed without
fixing this issue (tried = Null and that doesn't work either).

Basically, I have a field in a databsse which could be null, so in the code
i have:

' mfld(x) would have field names like "NAME" etc.

If IsNull(datPrimaryRS.Recordset(mfld(x))) Then
fvalue = ""
Else
fvalue = datPrimaryRS.Recordset(mfld(x))
End If

I have verified by stepping that isNull is true while moving the cursor
shows
"Steven Moss" in datPrimaryRS.Recordset(mfld(x))

What gives?
Apr 15 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a

"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message
news:DTY%f.715$UK5.619@trndny01...
I have used isNull statement for as long as I have used VB..

Recently I am devugging a program and it is very clear that the "IsNull"
function sometimes would return a true even when the value is not Null. Any wild shot or theory as to why this is happening is appreciated. Also, any
other alternative is appreciated since I am stuck and cannot proceed without fixing this issue (tried = Null and that doesn't work either).

Basically, I have a field in a databsse which could be null, so in the code i have:

' mfld(x) would have field names like "NAME" etc.

If IsNull(datPrimaryRS.Recordset(mfld(x))) Then
fvalue = ""
Else
fvalue = datPrimaryRS.Recordset(mfld(x))
End If

I have verified by stepping that isNull is true while moving the cursor
shows
"Steven Moss" in datPrimaryRS.Recordset(mfld(x))

What gives?


That is strange.

The situation where IsNull fails with 'Empty' is well-documented. (ie, some
databases will reset a field (text, nullable) that once had a value back to
Empty or " ", and not Null when the value is deleted), and other issues.

But I have never encountered the situation were a value existed and IsNull
failed. However, the Field.Values in a Recordset collection are Variants and
occasionally a strange dance (or joint psychosis) can develop based on the
Field data type attributes, the SQL used to fetch the data, and whether you
have previous dereferenced the value in your code.

You might go back and see if you can find something unusual about this
particular Field and its history.

There is simple workaround in this case. Use this instead...
fvalue = datPrimaryRS.Recordset(mfld(x)) & ""

hth
-ralph

Apr 15 '06 #2

P: n/a

"Ralph" <nt*************@yahoo.com> wrote in message
news:1u******************************@arkansas.net ...

"Raoul Watson" <Wa*****@IntelligenCIA.com> wrote in message
news:DTY%f.715$UK5.619@trndny01...
I have used isNull statement for as long as I have used VB..

Recently I am devugging a program and it is very clear that the "IsNull"
function sometimes would return a true even when the value is not Null. Any
wild shot or theory as to why this is happening is appreciated. Also, any other alternative is appreciated since I am stuck and cannot proceed

without
fixing this issue (tried = Null and that doesn't work either).

Basically, I have a field in a databsse which could be null, so in the

code
i have:

' mfld(x) would have field names like "NAME" etc.

If IsNull(datPrimaryRS.Recordset(mfld(x))) Then
fvalue = ""
Else
fvalue = datPrimaryRS.Recordset(mfld(x))
End If

I have verified by stepping that isNull is true while moving the cursor
shows
"Steven Moss" in datPrimaryRS.Recordset(mfld(x))

What gives?


That is strange.

The situation where IsNull fails with 'Empty' is well-documented. (ie,

some databases will reset a field (text, nullable) that once had a value back to Empty or " ", and not Null when the value is deleted), and other issues.

But I have never encountered the situation were a value existed and IsNull
failed. However, the Field.Values in a Recordset collection are Variants and occasionally a strange dance (or joint psychosis) can develop based on the
Field data type attributes, the SQL used to fetch the data, and whether you have previous dereferenced the value in your code.

You might go back and see if you can find something unusual about this
particular Field and its history.

There is simple workaround in this case. Use this instead...
fvalue = datPrimaryRS.Recordset(mfld(x)) & ""

hth
-ralph


Ralph..

You have no idea how valuable your golden advice is!!

Obviously the test for null is needed since we will get an
invalid use of null when we try to assign it to a variable/

Your method however, not only works, but it is a much more
efficient way of coding the isNull test..

Thanks again bud..
Apr 16 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.