If you run the query independently of the grid what kind of results do you get? I have never used the form 'requery(grid.recordsource)'. If you use 'requery(viewname)' and 'grid.refresh' do you get the same results?
A problem is a problem only as long as it has a possible solution. Lacking that, it becomes a FACT!