MSAccess is a personal database. So forget about it. Access is not an option, at least if you need decent performance.
You have to choose a Database Management System that can cope with your requirements.
If you are going to have many users trying to access your database simultaneously, and you need transactions, then go for PostgreSQL.
Go for PostgreSQL also if you're used to writing complex queries (with subqueries).
If you need Stored procedures and triggers, use a commercial DBMS.
If you don't have too many simultaneous connection and you don't need complex transaction management, you can choose MySQL, because it's faster than PostgreSQL.
-Gio-