my $dao = Win32::OLE->new('DAO.DBEngine.36'); my $db = $dao->OpenDatabase("access_database.mdb"); my $tables = $db->TableDefs; for (my $i = 0; $i < $tables->{Count}; $i++) { print $tables->Item($i)->{Name}, "\n"; } ......... see c:\Program Files\Common Files\Microsoft Shared\OFFICE11\1049\DAO360.CHM my $ado = Win32::OLE->new('ADODB.Connection'); $ado->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=access_database.mdb"); my $recordset = $ado->OpenSchema(20); # 20 is adSchemaTables until ($recordset->{EOF}) { print $recordset->{Fields}->Item('TABLE_NAME'), "\n"; $recordset->MoveNext; } ......... $recordset = $ado->Execute("SELECT ... FROM ... WHERE ...")->GetRows(); print $recordset->[0]->[0], "\n"; ......... see c:\Program Files\Common Files\Microsoft Shared\OFFICE11\1049\ADO210.CHM and c:\Program Files\Common Files\Microsoft Shared\OFFICE11\1049\JETSQL40.CHM and also see MS Access application objects model c:\Program Files\Microsoft Office\OFFICE11\1049\VBAAC10.CHM