given that you are using Access, so my standard stored proc solution doesn't work, what i would suggest is getting the data into 4 tables using Command Objects. For this part, you don't need to use a parameter, you can filter (if you want for the cost center in the record selection)
I am guessing that there is some common value that you are using for your summing, GL account is a likely candidate, so you would have something like for the select:
select glaccount, debit, credit from ledgerTable
where entry date between '1/1/'+convert(varchar, year(getDate()) and getDate();
this would get YTD (you probably need to adjust for Access syntax)
for this month it would be convert(varchar, Month(getDate())) + '/1/ + convert(varchar, Year(getDate())
now the more difficult, back a month
start date: datediff(M,-1,convert(datetime,convert(varchar, Month(getDate())) + '/1/ + convert(varchar, Year(getDate())))
ending would be :
DateDiff(d, -1, convert(varchar, Month(getDate())) + '/1/ + convert(varchar, Year(getDate()))
to go back 2 months would be similar.
you would then link all the tables by GLAccount, and you would probably link that to your GLAccount table so that you can get a description.
It might not be a full fledge solution, but hopefully it is a path to one.