Ok, i think i was over thinking in this problem, here is a way if any one faced something like it.
The problem was providing the field name which was changing, but i forgot to say it was calculated using the DateSerial function to get the first day of a date.
And Instead of searching in a query, i searched in the main table directly using Dlookup function. The field name prosperity of that function is using the date serial to get the column name, and the the table name and finally the criteria, which is the client name that is provided to the report and it gave the right value i needed.
Thanks all for your efforts.