I think most experienced developers are going to agree with June7, here! An expense Table, with a 'category' Field, is the practical way to go. To make sure that the correct term is entered, for the expense category, I'd use a Combobox that is Bound to the Field in the underlying Table. This will prevent things like entering Autos, one time, and Auto another time, or even Cars. Having the correct category, for each Record, and a correct date, is all that you should need to pull Reports accurately.
Linq ;0)>
The problem with making anything foolproof...is that fools are so darn ingenious!
All posts/responses based on Access 2003/2007