use strict; use warnings; use Win32::OLE; =VBA Dim accessApp as Access.Application Dim strDB as string Dim strImport as string set accessApp = new Access.Application strDB = "C:\Test\MyDatabase.mdb" strImport = "R:\Download\ImportFile.txt" accessApp.OpenCurrentDatabase strDB accessApp.DoCmd.TransferText acImportDelim, , "TableX", strImport, -1 accessApp.CloseCurrentDatabase =cut ## connect to Access my $access = Win32::OLE->new 'Access.Application' ) or die "Cannot create Access object:$!\n"; ## connect to the database $access->OpenCurrentDatabase( 'x:\The\path\to\your\database.mdb'); ## run the import command $access->DoCmd->TransferText( ',', ## The delimiter 0, ## First line contains field names. (1 if yes) 'YourTableName', ## The name of the table to import to 'x:/the/path/to/the/file.csv', ## file to import -1 ########### Haven't a clue what this is, ## but you should be able to work it out by looking at the ## Text Transfer menu ) or die $^E; ## and done $access->Quit();