I would suggest you don't use MS Access for your database, but rather adopt SQLite (
DBD::SQLite). Both build databases in stand alone files, but SQLite actually conforms with SQL standards and has a much more consistent set of types. I say this as someone who has (and will likely continue to) wrangled .mdb files. SQLite is free, open source, and widely adopted - for example, it is the backend database for Firefox.
If you decide to stick with Access, I have gotten more mileage out of Jet connectors:
my $dbh = do {
my $access_db_file = 'file.mdb';
my $Provider='Microsoft.Jet.OLEDB.4.0';
my $db_passwd = '';
DBI->connect( "dbi:ADO:Provider=$Provider;
Data Source=$access_db_file;
Jet OLEDB:Database Password=$db_passwd;",
'',
'',
{
PrintError => 0,
RaiseError => 1,
AutoCommit => 0,
LongReadLen => 1024**2,
}
);
};
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.