PC Review


Reply
Thread Tools Rate Thread

Automating Access: running your own functions/passing arguments

 
 
beartiger
Guest
Posts: n/a
 
      10th Jun 2011
This question has to do with automating Access. I simply want to run
my own function in Access and pass it arguments. .

So, let's say I have written a public function called foo() in a
module in my Access database. Foo() takes a couple of arguments,
param1 and param2, the first a string, the second an int. I want to
write a script that automates Access and runs this function in my
Access database and passes it values for these parameters. What would
that look like?

I have been trying to use Win32::OLE in a Perl script. This is what I
have so far. I haven't yet tried the argument passing yet:

use strict;
use warnings;
use Win32::OLE;

my $oAccess;
my $oDatabase;

my $filename = "C:\\mydb.accdb";
$oAccess = Win32::OLE->GetActiveObject('Access.Application');

$oAccess->OpenCurrentDatabase($filename);

#$oAccess->{DoCmd}->RunCommand(myfunction());
#$oAccess->{DoCmd}->RunCommand("myfunction()");
$oAccess->{DoCmd}->RunCode('myfunction()');

The commented out lines are some of the things I've tried, but I can't
get my function to run at all.

It's not clear to me from reading the Win32::OLE documentation at CPAN
how to do this. If this is not possible with Win32::OLE, can you tell
me how I might accomplish this?

The function I'm attempting to run exports a somewhat complex Excell
spreadsheet based on queries on my database. The arguments are
variables that I plug into the queries.

Thanks for any help.

Thanks,
John
 
Reply With Quote
 
 
 
 
Access Developer
Guest
Posts: n/a
 
      10th Jun 2011
Check help and Google/Bing for Command Line Parameters. You can schedule
tasks with Windows but I am not sure how you'd go about passing
parameters... a Shell Script might be what you want, but that is 'way
outside my scope of knowledge (as Perl is).

--
Larry Linson, Microsoft Office Access MVP
Co-author: "Microsoft Access Small Business Solutions", published by Wiley
Access newsgroup support is alive and well in USENET
comp.databases.ms-access


"beartiger" <(E-Mail Removed)> wrote in message
news:b00aa10c-4564-4fce-b3f8-(E-Mail Removed)...
> This question has to do with automating Access. I simply want to run
> my own function in Access and pass it arguments. .
>
> So, let's say I have written a public function called foo() in a
> module in my Access database. Foo() takes a couple of arguments,
> param1 and param2, the first a string, the second an int. I want to
> write a script that automates Access and runs this function in my
> Access database and passes it values for these parameters. What would
> that look like?
>
> I have been trying to use Win32::OLE in a Perl script. This is what I
> have so far. I haven't yet tried the argument passing yet:
>
> use strict;
> use warnings;
> use Win32::OLE;
>
> my $oAccess;
> my $oDatabase;
>
> my $filename = "C:\\mydb.accdb";
> $oAccess = Win32::OLE->GetActiveObject('Access.Application');
>
> $oAccess->OpenCurrentDatabase($filename);
>
> #$oAccess->{DoCmd}->RunCommand(myfunction());
> #$oAccess->{DoCmd}->RunCommand("myfunction()");
> $oAccess->{DoCmd}->RunCode('myfunction()');
>
> The commented out lines are some of the things I've tried, but I can't
> get my function to run at all.
>
> It's not clear to me from reading the Win32::OLE documentation at CPAN
> how to do this. If this is not possible with Win32::OLE, can you tell
> me how I might accomplish this?
>
> The function I'm attempting to run exports a somewhat complex Excell
> spreadsheet based on queries on my database. The arguments are
> variables that I plug into the queries.
>
> Thanks for any help.
>
> Thanks,
> John



 
Reply With Quote
 
John Harrington
Guest
Posts: n/a
 
      13th Jun 2011
On Jun 10, 2:26*pm, "Access Developer" <accde...@gmail.com> wrote:
> Check help and Google/Bing for Command Line Parameters. *You can schedule
> tasks with Windows but I am not sure how you'd go about passing
> parameters... a Shell Script might be what you want, but that is 'way
> outside my scope of knowledge (as Perl is).


The answer, as it turns out, is to use the Application.Run method,
like:

$oAccess->Run("myfunction","arg")


Best regards,
John
 
Reply With Quote
 
Access Developer
Guest
Posts: n/a
 
      13th Jun 2011
I did not understand that he wanted to do this from within an Access
database. Isn't that a requirement for Application.Run?

--
Larry Linson, Microsoft Office Access MVP
Co-author: "Microsoft Access Small Business Solutions", published by Wiley
Access newsgroup support is alive and well in USENET
comp.databases.ms-access


"John Harrington" <(E-Mail Removed)> wrote in message
news:5b4ced8d-fbb9-45f1-9879-(E-Mail Removed)...
On Jun 10, 2:26 pm, "Access Developer" <accde...@gmail.com> wrote:
> Check help and Google/Bing for Command Line Parameters. You can schedule
> tasks with Windows but I am not sure how you'd go about passing
> parameters... a Shell Script might be what you want, but that is 'way
> outside my scope of knowledge (as Perl is).


The answer, as it turns out, is to use the Application.Run method,
like:

$oAccess->Run("myfunction","arg")


Best regards,
John


 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Automating Access: running your own functions/passing arguments beartiger Microsoft Access Forms 3 15th Jun 2011 10:02 PM
Passing events as arguments to functions Israel Microsoft C# .NET 2 17th Sep 2008 10:41 PM
Functions and worksheets, passing arguments to functions? newbie Microsoft Excel Discussion 3 3rd Jan 2008 06:54 PM
Passing Constant Arguments to custom Subroutine & Functions cLiffordiL Microsoft Excel Programming 6 21st Jun 2006 09:17 AM
Passing strings as arguments to xll functions. =?Utf-8?B?SmFja3NvblJKb25lcw==?= Microsoft Excel Programming 0 24th Mar 2006 03:37 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:34 PM.