I\'m working on an application in VB6. I came across what seems to be a small issue, however it is annoying and I am unable to fix it. What I\'m doing is trying to pass 2 va
Figured it out. It doesn't matter if it's NULL or "", because the combobox that's in place is combobox 2.0, I couldn't just pass it as combobox in my function, but this fixed it..
Private Sub AxisSearch(plngAxis As Long, pcbo As msforms.ComboBox)
more specifically msforms.combobox
Just to answer your original question: first, ""
isn't Null
, it's an empty string, which is not the same thing. If you want to turn a Null
into an empty string, just add an empty string to it: Null & ""
evaluates to ""
.
This can be a handy trick. It comes up a lot in situations where you're trying to populate a control (say, a label or text box) with a value from a database table. For example (assume txtMyBox is a text box and rs is an ADO Recordset object):
txtMyBox = rs.Fields("myField")
Now, if the field doesn't contain any data, this will throw an error, since you can't set a text box's value to Null
. To fix the problem, you could do this:
If Not IsNull(rs.Fields("myField")) Then
txtMyBox = rs.Fields("myField")
Else
txtMyBox = ""
End If
This is cumbersome. You could streamline it by using the ternary operator:
txtMyBox = IIf (Not IsNull(rs.Fields("myField")), rs.Fields("myField"), "")
Which is better, but still cumbersome. Fortunately, you can also just do this:
txtMyBox = rs.Fields("myField") & ""
Because concatenating an empty string to a string has no effect on it, and concatenating an empty string to a null value gives an empty string.