Referencing a program not installed

Dale Logan
Dale Logan used Ask the Experts™
on
I have created an Access app that gives the user the ability to create on a form a map using MapPoint or even export a map to MapPoint. If a user does not have MapPoint installed they get all kinds of nasty messages. Is there anyway to cause this not to happen. If so, I could then disable that user from opening the form used for creating the maps.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Commented:
Hi,

You could add a function into a module that checks to see if the reference is OK or broken - like this:

Function CheckReference(sRefName As String) As Boolean
  
  CheckReference = Not (Application.References(sRefName).IsBroken)

End Function

Open in new window


You could call this function using the registered short name of the reference - for example, the reference you see as "Visual Basic for Applications" in Tools/references has the short name "VBA", so you'd check this was OK like this:

if CheckReference("VBA") then debug.print "OK" else debug.print "Missing!"

Open in new window


If your shortname is "Mappoint", as it may well be, you'd substitute "Mappoint" for "VBA" in the example above. You can then use the check to send the user off elsewhere as you like.

I hope that helps, and makes sense.

NorieAnalyst Assistant

Commented:
How are you using MapPoint on the form?
Dale LoganConsultant

Author

Commented:
plummet, I will give that a try in a couple of hours and will let you know how it goes. Sounds promising.

imnorie, You can add a MapPoint ActiveX control to a form. In that control I give the user the ability to create territory maps, sales volume maps, they can plot customers by location, tons of stuff. They can even export a map to MapPoint. Here's a link to all of the coding options:

http://msdn.microsoft.com/en-us/library/aa562314.aspx
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

NorieAnalyst Assistant

Commented:
What I was going to suggest was using late-binding so you wouldn't need a reference.

I don't think that will work if you are adding the control to a form though.:)

Most Valuable Expert 2012
Top Expert 2014
Commented:
You won't be able to do this since you're using ActiveX controls. Your app will require that control to be present on the end user machine. You cannot distribute this control, either, so if you need this functionality that you will need to require your end users to have the full version of MapPoint on their system.

You could build two different applications - one with the MP reference, and one without, and then distribute the appropriate one to your end users. That's a pain to maintain, of course, since you must remember to make changes in both files.
NorieAnalyst Assistant

Commented:
LSM

I thought that might be the case but wasn't sure.

I assume the problem is that a missing control leads to a missing reference which leads to all sort of problems elsewhere.
Most Valuable Expert 2012
Top Expert 2014

Commented:
That would be my assumption as well.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial