While that SET FILTER could work, it has a very undesirable condition: utype_table.time has to be the format CTOT can convert. Even if that is so, the CTOT conversion can fail on changesd setting, because the current character format for datetimes depends on locale and even if VFP settings override that it depends on several VFP settings for century, order of year month and date and the separator used, besides also AM/PM vs 24 hours time format.
If code is needing conversions its better to adapt the data itself, as said there is no reason to store datetimes in char fields, there are datetime fileds for that matter and it's easier to compute with them and compare them, thereby also filter on them.
The original code you have would then be simpified to set FILTER TO utype_table.time=thisform.olecontrol1._Value, but it will only filter for the very specific time you select from the ole control.
If you want to filter for a month, as Mike better spotted than me, you either store date parts separate, eg also the month has its own field, or you use the YEAR() and MONTH() functions on a datetime. There are rules against data redundancy that would suggest you don't store the month and ddatetime, as they could contradict each other and as Tamar once quotes, the man with one clock knows the time, the man with two clocks never can be sure. Another way to get at the month would be defining an index on MONTH(datetimefield) and another one on YEAR(datetimefield) and then let a condition as MONTH(datetimefield)=MONTH(datetimepickedfromacontrol) AND YEAR(datetimefield)=YEAR(datetimepickedfromacontrol) be optimized by that indexes.
Bye, Olaf.