Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: Ms Access and win32 ole

by sumit07 (Novice)
on Oct 26, 2012 at 10:43 UTC ( #1001041=note: print w/ replies, xml ) Need Help??


in reply to Re: Ms Access and win32 ole
in thread Ms Access and win32 ole

Hi Sinistral

I am now trying to open using this code
$oDatabase = $oAccess->DBEngine->OpenCurrentDatabase($filename);
It says invalid argument.Do we need to provide other arguments also.

With this code $oDatabase = $oAccess->DBEngine->OpenDatabase($filename);

It opens fine but the custom properties doesnot get added to the file's custom tab in the database properties.
Is there any difference between OpenDatabase and OpenCurrentDatabase.
my $filename = 'C:\Documents and Settings\551970\Desktop\database.accd +b'; # $ARGV[0]; print $filename."\n"; $oAccess = Win32::OLE->new('Access.Application') or die qq{Couldn't st +art new Access instance!}; # Open Access File $oDatabase = $oAccess->DBEngine->OpenDatabase($filename); my $new_property = $oDatabase->Containers->Databases->Documents->User +Defined->CreateProperty("Test1",12,"Test"); $oDatabase->Containers->Databases->Documents->UserDefined->Propertie +s->Append($new_property); foreach (in $oDatabase->Containers->Databases->Documents->UserDefined- +>Properties) { #print Dumper($_); print "prop ".$_->Name."\n"; } undef $oDatabase; #undef $oAccess; $oAccess->Quit();


Comment on Re^2: Ms Access and win32 ole
Select or Download Code
Re^3: Ms Access and win32 ole
by Sinistral (Prior) on Oct 26, 2012 at 13:50 UTC

    Most of my Win32::OLE experience has been with Excel, not Access, but a little Googling found this link: http://msdn.microsoft.com/en-us/library/office/bb238012(v=office.12).aspx which specifically says that OpenCurrenDatabase is for manipulating Access and opening files, while OpenDatabase returns a Database variable but doesn't actually open the file in the Access window. So for you, you want OpenCurrentDatabse. Beyond that, the best thing I can offer is to check out the documents I linked to, which are the Automation docs for Access 2007 (switch to 2010 if that's what you're using).

    The other tip I've seen is to record a macro of the task you're trying to achieve and examine the VBA code that Access creates. It looks like you're on your way already to knowing the Perl Win32::OLE to VBA equivalent

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1001041]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (11)
As of 2014-09-19 11:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (135 votes), past polls