"Invalid use of Null" when using Str() with a Null Recordset field, but Str(Null) works fine

Posted by Mike Spross on Stack Overflow See other posts from Stack Overflow or by Mike Spross
Published on 2010-05-06T22:22:39Z Indexed on 2010/05/06 22:28 UTC
Read the original article Hit count: 184

Filed under:
|
|

I'm banging my head against the wall on this one. I was looking at some old database reporting code written in VB6 and case across this line (the code is moving data from a "source" database into a reporting database):

rsTarget!VehYear = Trim(Str(rsSource!VehYear))

When rsSource!VehYear is Null, the above line generates an "Invalid use of Null" run-time error. If I break on the above line and type the following in the Immediate pane:

?rsSource!VehYear

It outputs Null. Fine, that makes sense. Next, I try to reproduce the error:

?Str(rsSource!VehYear)

I get an "Invalid use of Null" error.

However, if I type the following into the Immediate window:

?Str(Null)

I don't get an error. It simply outputs Null.

If I repeat the same experiment with Trim() instead of Str(), everything works fine. ?Trim(rsSource!VehYear) returns Null, as does ?Trim(Null). No run-time errors.

So, my question is, how can Str(rsSource!VehYear) possibly throw an "Invalid use of Null" error when Str(Null) does not, when I know that rsSource!VehYear is equal to Null?

© Stack Overflow or respective owner

Related posts about vb6

Related posts about adodb