I can’t figure out what’s wrong with this simple if a < b statement.
The txtMax is 100 whiletxtSafety is 50, when txtMax is lower thantxtSafety then run some error msgbox.
With Me
If .txtMax.Value < .txtSafety.Value Then
MsgBox "Error"
Exit Sub
End If
End With
In this case, it should not run the error msgbox since max is higher than safety.
Please help…
>Solution :
They’re almost certainly strings which, when compared, use lexicographical sorting.
In other words, it checks character by character until there’s a difference:
100
50
Since 5 is a larger character value than 1, 50 is considered the greater of the two.
If you want to compare them as if they were numeric values, you should probably convert them into numerics forst, with something like:
With Me
if CInt(.txtMax.Value) < CInt(.txtSafety.Value) Then
Or turn them into numerics as quickly as possible if you never need to worry about the strings again:
With Me
maxValue = CInt(.txtMax.Value)
safetyValue = CInt(.txtSafety.Value)
if maxValue < safetyValue Then