ちょっと探してしまったので、ここにメモります。
use strict;
use warnings;
use utf8;
use Encode;
use Win32::OLE;
use DBI;
# BEGIN variable
my $FN = 'sample.mdb';
# END variable
if (-e $FN) {
unlink -e $FN or die;
}
my $dsn = "Provider=Microsoft.Jet.OLEDB.4.0;";
$dsn .= "Data Source=$FN;";
my $cat = Win32::OLE->new("ADOX.Catalog");
$cat->Create($dsn) or die;
$cat->Close();
my $dbh = DBI->connect("dbi:ADO:$dsn") or die $DBI::errstr;
$dbh->do(
"Create Table song(id int, artist varchar(255), title varchar(255))"
) or die $DBI::errstr;
my $sth = $dbh->prepare("INSERT INTO song(id,artist,title) VALUES (?,?,?)");
$sth->execute(1, "The Stalin", encode('cp932', 'ロマンチスト'));
$sth->execute(2, "INU", encode('cp932', 'メシ喰うな'));
$dbh->disconnect;
おしまい
DBIx::Class::Loader::ADOなんてのもありますな(・∀・)

サンプルコード
$cat->Create($dsn) or die;
で
Died at D:\写真集\画蔵閲覧\gazo-bin\gazo\cgi\sql.pl line 22.
が発生です
環境はwin10です
ファイル名を日本語ものを避ければ通ると思います。
日本語のものを使うのであれば、cp932で渡してあげるか
Win32::OLE->Option( CP => &Win32::OLE::CP_UTF8 );
として utf8 でデコード済みのものを渡します。(use utf8 して UTF-8 でスクリプトを書いていればこちらです。Accessの結果も utf8 になってしまうかと思いますが)
詳しくは。。。
https://metacpan.org/pod/Win32::OLE#CP
http://bokut.in/mt/2012/04/perl-win32-unicode.html
https://metacpan.org/pod/Win32::Unicode
https://metacpan.org/pod/Win32::LongPath
encode( cp932 => $fn )