Another possible approach would be to construct a 'front-end' to an Access
database: the immediate one that comes to mind is Visual Basic, which works
quite nicely as a front-end. The database itself can be furnished with all
the usual security, and this dealt with in code to allow the user as much or
as little freedom as the developer wants. Of course, although you don't need
runtime Access for this, you would have to make sure the relevant VB
libraries were (installed) on the user's machine - but VB will take care of
this when packaging your application.
Any other language/programming environment with ODBC/ADO (or whatever it's
called this week) extensions should also be able to do the job.
Maybe this could also be implemented as a Web application ?