Calling a Microsoft Access Report from Java

Anyone got any ideas or sites where I can try to find out how to call a Microsoft Access Report from a Java application?
imnotahomeyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

objectsCommented:
think you're only option would be to start Access using Runtime.exec()
0
imnotahomeyAuthor Commented:
I need to pass parameters to the access report from my Java program. I would prefer not having to redo the entire report in another reporting tool.
0
objectsCommented:
Perhaps ask in the Access topic what command line you need to use to display your report. Then use Runtime.exec() to execute it.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

dualsoulCommented:
hm...i suggest you to create dll in C++ or VB which is do everything you want with MS Access through COM model.
   Then use JNI mechanism to call dll functions from Java and pass parameters to it.

   Read JNI tutorial at java.sun.com to understand JNI
0
sre23Commented:
create a shortcut to the report from access (this creates a shortcut file with a .mar extension I belive.  Then use Runtime.exec() and open that shortcut.  Then you open your report directly :)
0
sre23Commented:
>>I need to pass parameters to the access report from my Java program.

I don't think you can pass info directly, but there is a way to do it.  Configure your report to pull whatever info you need from a table and use jdbc to pass info from your java app to your Access database.  Just use an Insert query.  If you need further explanation let me know.  I have been in this same predicament before.

After you have updated the table with the appropraite info, here is the command you can use to open the report (This worked for me with Access 2000 on a Windows XP machine)

Runtime load = Runtime.getRuntime();        
//open the file
load.exec("\"C:\\Program Files\\Microsoft Office\\Office\\MSACCESS.EXE\" /NOSTARTUP /SHELLSYSTEM [OpenReport \"C:\\Report.mar\",2]\"");

It looks confusing but basically this is the command your pc uses when you click on the report shortcut.
0
imnotahomeyAuthor Commented:
Thanks everyone for your help.
I found some answers in the Access topic thanks to objects
I will probably end up running the following command line that i got from Mr TextReport, which made me happy
------------------------
"C:\Program Files\Microsoft Office\Office\MSAccess.exe" "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb" /x MacroName /CMD "[MyField]=5"

Function PrintReport
     docmd.openreport "MyReport", , Command$
End Function

and the macro does a runcode PrintReport()
-------------------------
Boog.
0
objectsCommented:
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.