I used MySQLFront. It wasn't entirely automatic, but it did a reasonable
job. There are some gotchas.
Take your time, and be sure to read the notes for using Access and MyODBC
with MySQL, if that's how you're going to do it -- some column types are not
recommended. You'll want to add a TIMESTAMP column to each table, as well,
after importing. Some of MySQLFront's choices for column types aren't the
best -- you should check them by hand before doing the import. In
particular it doesn't handle currency fields properly unless you manually
set the type. (It defaults to Integer, and truncates the decimal parts.)
If you have any table names with spaces, fix those before you try to import.
MySQLFront will happily create them, but you'll find them impossible to
You'll have to do some hand editing of your Access queries. Access doesn't
support relationships between ODBC data source tables, so you'll need to
manually set up the joins in each query. Keep in mind that Access will not
enforce data integrity on ODBC tables. Also remember that Access is not
case-sensitive, but MySQL is!
You should try hard to get the tables correct in MySQL before you deploy the
database to users, because after that changing them gets more difficult. If
a table definition is changed, you have to go back and delete the link to it
in Access, then recreate it. If you don't do this, Access gets confused and
goes into an endless loop.