in reply to Connect to MS Access w/o ODBC, DSN, from Win32

On Win32 you can connect directly to the access mdb file, but it still is through DBD::ODBC. The following code is a summarizaion of code I've used to manipulate pre-existing ms access databases:
use strict; use warnings; use DBI; my $file = 'c:/path/to/access/database.mdb'; my $dsn = 'dbi:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=' . $fi +le; my $dbh = DBI->connect($dsn,undef,undef);
I'm not 100% sure this will solve your immediate problems, but it has worked for me when there was no system wide DSN for the access database. I do beleive this solution is documented somewhere in the DBI/DBD pod documentation.

Also, for the creation of a new MDB file (which you can't otherwise do without resorting to Win32 calls or ADO), I created a simple empty database with Access, and then serialized it using MIME::Base64 and stuffed the serialized version into a module so it was easy to just create a new blank db:

use strict; use warnings; use BlankMDB; BlankMDB->writeToFile('c:/path/to/file.mdb');