You could possibly use one of the Win32::* modules to automate Access and have it spit out a report. If you want to actually create the report outside of Access,
DBI with
ODBC will take care of the SQL end - it will allow you to make any query you could make from within Access. Then to generate the report, you could use
DBI::Format or a templating system like
HTML:Template or
Template::Toolkit.