"Karl E. Peterson" <EMAIL REMOVED> wrote in message
news:edpo6h$tfd$EMAIL REMOVED...
> Geoff wrote:
>> Consider the procedure
>>
>> Private Sub Adder(ByVal Num1 As Integer, etc. )
>>
>> End Sub
>>
>> which called by Call Adder( TxtNum1,.) where TxtNum1 is a text
>> box.
>>
>> Why does Num1 accept the value as an integer when the actual
>> parameter being p***ed is of type string? Why no type mismatch
>> error??
>
> That's one of the "features" introduced at VB4, and commonly referred to as
> "Evil Type Coercion". If VB can coerce, it does. Here's an article I wrote
> on that, way back when:
>
> Coercion Aversion
> http://vb.mvps.org/articles/pt199511.pdf
>
IN fact, when you p*** TxtNum1, you are p***ing a TextBox, not a string. VB also
finds the default property of the TextBox, which is Text, which is a string, and
then does ETC and p***es the result. Since default properties can also get you
in trouble, it is usually considered better to use TxtNum1.Text directly:
If IsNumeric(TxtNum1.Text) Then
Call Adder(CInt(TxtNum1.Text))
End If