>>>Thanks for all the input on this one, guys. Sorry I haven't got back sooner but the UT's been out of order for me this PM. The filter code appears in a few places on the form and I've got round the problem sort of in this way:
>>>
>>>
>>>lcFilter = "OPERATOR = " + ALLTRIM( this.Value) + " and " + ;
>>> "END_DATE >= CTOD('" + DTOC( thisform.dStartDate) + "') or EMPTY( END_DATE)"
>>>
>>
>>What's type of operator? If it's a number and This is a combo, then just remove the alltrim and replace it with a transform(). If operator is a string, you'd need
>>
>>
>>lcFilter = "OPERATOR = [" + ALLTRIM( this.Value) + "] and " + ;
>> "END_DATE >= CTOD('" + DTOC( thisform.dStartDate) + "') or EMPTY( END_DATE)"
>>
>
>Like I said, it keeps flip-flopping from char to num. I make a change accordingly then next time it decides it's the other!
Then stick to the type of Operator field, and serve it in that format. Alltrim(transform(this.value)) will always be a string, and the brackets around it would be necessary if Operator is a string.
Could it be that this.value is different during combo's init, before it's first refreshed? Maybe using eval(this.controlsource) would be better?