You'd need to state what midmonth is to you, does that mean the 15th, or?
Here's how to get an end of the month:
dateserial(year(currrentdate),month(currrentdate)+1,1)-1
So a record selection formula might look like:
{table.date} <= dateserial(year(currrentdate),month(currrentdate)+1,1)-1
For midmonth it might be:
{table.date} <= dateserial(year(currrentdate),month(currrentdate),15)
End of month isn't very descriptive either, do you want this month, last month, or?
Hopefully you'll understand the above and it will prove applicable for your needs.
-k