Я предполагаю, что драйвер не соответствовал тому, что вы использовали для DSN, или другой причиной проблем является то, что вы смешиваете 64-битный Perl с 32-битным драйвером ODBC или 32-битный Perl с 64-битным драйвером. Настоящая проблема в том, что сообщение об ошибке ужасно расплывчато - вы думаете, может быть, они могут сказать вам, был ли источником данных ИЛИ драйвер? В идеальном мире ...
В любом случае, этот метод, который вы пытались использовать, работает, если ваш DSN правильный, и если ваш Perl и ODBC драйвер находятся в одном семействе битов.
Ссылка на драйвер в DSN должна точно соответствовать перечисленным в разделе Администрирование > Источники данных (ODBC) > Драйверы вкладка. Мой указан как Драйвер Microsoft Access ( .mdb, .accdb) , так что он немного отличается от того, что вы имели. В Perl линия для подключения:
my $dbh = DBI->connect('dbi:ODBC:driver=Microsoft Access Driver (*.mdb, *.accdb);dbq=X:\Path\To\Your\Database.mdb')
Подробнее о MS Access с Perl в Windows 7 находится здесь .