【发布时间】:2009-08-21 23:35:42
【问题描述】:
目前我正在尝试通过 Perl OLE 在 Microsoft Access 中执行宏
我想知道如何正确调用运行宏。我试过了
1) $oDatabase -> DoCmd.RunMacro("Macro1");
2)$oDatabase -> DoCmd -> RunMacro("Macro1");
但他们向我抛出“无法在未定义的值上调用方法“DoCmd””或“无用的串联”
这甚至可以通过 Win::32 OLE 执行 DoCmd 吗?任何帮助将不胜感激。
这是一个完整的代码。它会尝试查找当前打开的 Microsoft Access。
use strict;
use warnings;
use Win32::OLE;
my $oAccess;
my $oDatabase;
my $filename = "C:\\Sample.accdb";
$oAccess = Win32::OLE->GetActiveObject('Access.Application');
$oDatabase = $oAccess->OpenCurrentDatabase($filename);
$oDatabase -> DoCmd.RunMacro("Macro1");
【问题讨论】:
-
我认为其他人实际上已经回答了您的问题,但我会问您到底要运行 macro 来做什么。宏是在 Access 应用程序中完成任何事情的糟糕方法。宏有什么作用?很可能它可以通过其他一些方法更直接地完成,即真实代码。