It appears that this will not work in January:
If your AsOfDate = '2011-01-02' you will return 'December 2011' instead of 'December 2010'.
When I am doing something like this, I try to make sure that I am using the same date for both parts, so I would use ...Year(DateAdd("M",-1,...).
--
JimFive