sub printReport { my ($location) = @_; my $path = "XXX"; #get new object my $access = Win32::OLE->new('Access.Application') or die "$!"; #open the database $access->OpenCurrentDatabase($path); #change the record source to the new table $access->{Reports}->Item(1)->{RecordSource} = $location; #Print the report $access->DoCmd->OpenReport("XXX"); }