Hola makinovic:
Da la sensación de que en tu caso la comparación falla por un tema de ordenación de texto.
Estos serían valores tipo carácter ordenados:
'1','10','11','12','2','20','21','3','31'...
Revisa el tipo de datos del campo por el que seleccionas y si utilizas SQL, prueba a utilizar una función de conversión de tipo de datos (CLng, CInt, DIGITS, ...) según sea tu caso. Lo ideal sería que te asegures de comparar un valor numérico con un campo numérico.
A ver si con esto obtienes algo en limpio.
Chao.