Try this: http://stackoverflow.com/questions/837754/call-routine-in-access-module-from-net
On Wed, Jun 29, 2011 at 10:19 AM, John Harrington <bearti...@gmail.com> wrote: > Hi Leo, > Thanks for this. > I tried this script on one of the machines that wasn't working yesterday and > received only this error: > Last OLE32 error: Win32::OLE(0.1709) error 0x800a9d9f in > METHOD/PROPERTYGET "Run" > Any suggestions? > So far I've tried automation on four separate machines: > All with Access 2007 12.0.6535.5005 SP2 MSO 12.0.6554.5001 > OS bits Perl version Works? > XP 32 5.10.1 yes > XP 32 5.12.4 no > W7 64 5.12.4 yes > W7? 64? 5.10.1 no > I believe OS, bits, Perl version, and Access version can be ruled out as the > explanation. > Thank you again, > John > > On Tue, Jun 28, 2011 at 5:35 PM, Leo Susanto <leosusa...@gmail.com> wrote: >> >> Thank, so Access 2007 is installed in all of the machine >> >> Could you please run this and see if there is any error? >> >> use strict; >> use warnings; >> use Win32::OLE; >> my $oAccess; >> eval {$oAccess = Win32::OLE->GetActiveObject("Access.Application")}; >> if ($@) { >> die "Access.Application is not installed\n"; >> } >> unless (defined $oAccess) { >> unless ($oAccess = Win32::OLE->new("Access.Application", sub >> {$_[0]->Quit;})) { >> die "Can not start Access.Application\n"; >> } >> } >> >> $oAccess->OpenCurrentDatabase("C:\\vpdb\\depot\\VProject\\Database\\xdb.accdb"); >> print "Last OLE32 error: ". Win32::OLE->LastError() if >> (Win32::OLE->LastError()); >> $oAccess->Run("AutomationTest"); >> print "Last OLE32 error: ". Win32::OLE->LastError() if >> (Win32::OLE->LastError()); >> >> On Tue, Jun 28, 2011 at 4:36 PM, John Harrington <bearti...@gmail.com> >> wrote: >> > I have a very simple script using Win32::OLE that works perfectly on my >> > machine but not on other people's machines and I can't figure out why. >> > The script is as follows: >> > >> > use strict; >> > use warnings; >> > use Win32::OLE; >> > my $oAccess; >> > $oAccess = Win32::OLE->new('Access.Application') or die "Unable to start >> > Access"; >> > >> > $oAccess->OpenCurrentDatabase("C:\\vpdb\\depot\\VProject\\Database\\xdb.accdb"); >> > $oAccess->Run("AutomationTest") >> > >> > When I run it on my machine, it successfully runs a Public Function >> > called >> > AutomationTest in my database. This function writes two files to the >> > cwd, a >> > text file and a simple Excel spreadsheet. >> > When I run this script on other people's machines, the script executes >> > (same >> > OS, same version of ActiveState Perl (5.10.1), same database, same >> > permissions) but the files are not written, which suggests the >> > automation is >> > not working. No errors are generated. The script runs, but there are >> > no >> > files produced. >> > Again, it works on my machine, not on theirs, with apparently the very >> > same >> > conditions. I even tried sharing my Perl folder so another user could >> > be >> > assured he was running the same version of the module and Perl. >> > I am at my wit's end. Any help would be appreciated. >> > Can you think of any reason such a simple application of the Win32::OLE >> > module would work on one machine and not on another? >> > >> > Thanks, >> > John >> > >> > >> > >> > >> > _______________________________________________ >> > Perl-Win32-Users mailing list >> > Perl-Win32-Users@listserv.ActiveState.com >> > To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs >> > >> > > > _______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs