One option might be to create an SQLite database (it's free and you don't need admin rights to install), and then for the GUI have an Access database that links to the SQLite db via an ODBC driver. I've had good luck with this at work.
Unfortunately I've never tried to programmatically create an Access database, so I can't help there.