We help IT Professionals succeed at work.

VBA: Switch front Application in VBA

Medium Priority
1,803 Views
Last Modified: 2013-11-18
I am trying to send some information from MS Access to another application (Cumulus) and then have that application display data related to the information.

The Cumulus Application used to be fully VB scriptable but has since a few years switched to JAVA instead. However, it does have one single Object in it's VB Dictionary: The Application object, and this one supports only ONE Function (which allows me to have it start one of its JAVA plug-ins, called EJPs and pass some data to it)

I am succesful in using the command to send the data to Cumulus, and if Cumulus is not already running, it will launch and come to the front and then execute my command (by executing my JAVA plug-in with the data that was sent from Acceess)

HOWEVER: If Cumulus is already running, it will NOT come to the front and the user will therefore not see the result.

My Question: How can I either force MS Access to the background or bring Cumulus to the foreground? Is there a general command in VBA that would allow this?



For reference, here is the simple code snippet in Access:

Private Sub Command0_Click()
Set cuApp = CreateObject("Cumulus6.Application")
reply = cuApp.CallEJP("com.modula4.testing.MainEJP", "Hi")
MsgBox reply
End Sub
Comment
Watch Question

CERTIFIED EXPERT
Commented:
Hi Bohumil,

You could try this....

    AppActivate "Cumulus"

...which activates the named application. Or you might like to try something like this....

    Set cuApp = GetObject("Cumulus6.Application")

...which retreives a running instance of the application.

Regards,

Wayne

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Thanks Wayne,
For some reason I did not seem to get a notification when you posted your suggestion--so please excuse the late acceptance. The AppActivate "..." command did the trick in principle. The problem is however that it wants the exact Window Title as an argument, and that is a bit of a problem since it depends on a number of things in Cumulus--but I think I'll be able to find a way to determine the title in the JAVA code and return it to VB as a first step and then call the Application a second time to bring it to the front and execute the actual command I am interested in.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.