我是perl的新手。我被要求使用perl在ms访问数据库中执行宏。这是我使用的代码
$oAccess = Win32::OLE->GetActiveObject('Access.Application');
$oAccess ->OpenCurrentDatabase($path);
$oAccess ->{DoCmd}->RunMacro("DO ALL");
今天当我执行程序时,我发现只有访问数据库打开时,代码才能正常工作,否则会返回以下错误
Can't call method "OpenCurrentDatabase" on an undefined value at auto.pl line 30
所以我想知道如果没有开放的ms访问数据库,我是否能找到任何其他能够达到目的的代码。
答案 0 :(得分:2)
my $MSAccess;
eval {$MSAccess = Win32::OLE->GetActiveObject('Access.Application')};
die "Access not installed" if $@;
unless (defined $MSAccess) {
$MSAccess = Win32::OLE->new('Access.Application','Quit')
or die "Unable to start Access";
}
$MSAccess->{visible} = 0;