You are using a multiplication of the Booleans for some reason. This means
that both sides of the equation need to be evaluated and you'll get a type
mismatch when you try to check the non-zero'ness of a non-numeric.
Use "and" to combine the two Booleans. It'll stop processing after the
first "false" and won't get to the <> 0 for non-numerics.
In general, performing arithmetic on Boolean values is "a bad thing". There
are times when it is useful for special tricks, but it should not be used as
the normal case.