像perl中的opencurrentdatabase这样的方法

时间:2014-02-20 13:33:26

标签: perl ms-access-2013

我是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访问数据库,我是否能找到任何其他能够达到目的的代码。

1 个答案:

答案 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;