I personally use the Len() method a lot ...
If Len(Me.TextBox & "") > 0 Then ...
If Len(Me.ComboBox & "") > 0 Then ...
Amazingling enough, you can even use ...
If Len(Me.Textbox) Then ...
Since Len will return a Null if a Null is passed, and a Null is neither True or False, so the Else branch will be taken by VBA.
Click Here to learn more about Nulls and their behavior.
....
There is really no harm in checking for Null with the IsNull(), however some caveats are this:
[*] IsNull() will ONLY check for a Null value, where as using Len(), you check for a Null or a Zero Length String. When dealing with text fields that allow ZLS's, this can be the source of many hours of debugging to figure out why a control, bound to a field, which LOOKS blank (Null) does not branch your code correctly!! ...
[*] A combo box returns a STRING and will only return a Null if no value is selected OR, if you use the .Column() property, the reference Row or Column index is not valid. Note that VBA tends to coerce where needed so ...
Dim x As Long
x = Me.SomeCombo
is completely valid if SomeCombo's bound column is a number because VBA will know your intent. However, when trying to test for a blank value, especially when using the .Column() property, you run the risk of having the combo return a ZLS (note: a column will coerce Null fields values to a ZLS), and thus a Null check will be useless ...
{the same concept is true with List Boxes}
.....
When checking the validity of values, in addition to Len() I will also use:
IsNumeric()
IsDate()
As they both can handle just about anything being passed to them and gives you a bit more info ... so if you are checking for a date and the user enters "1/32/2008", IsDate() will return False, while Len() and IsNull() will return True ...
.....
Does this info help?