Missing References in Access when using DB on different user's machines

Posted on 2011-05-01
Last Modified: 2012-06-21
Hello, I'd be interested in hearing from some of the experts here who manage databases on a topic that has been frustrating me a little bit.  In many of the databases I'm using, VBA coding requires that I create references to different .dll files.  However, on some user's machines they will not have the appropriate dll available (such as msoutls.dll).  These usually just requires a small amount of tweaking and removing these references to get the database to run smoothly, albeit without that feature.
My question is, aside from having identical workstations, what steps can I take to prevent these types of errors, if any?  What sort of practices do you advanced users go through when setting up a database that could be used on a variety of user's machines?

Thanks so much as always for the comments,
Question by:Bevos
    LVL 12

    Accepted Solution

    Hi there,

    You can try to do your coding as much as in Late binding, so no references needed.
    See below links on how to apply Late binding;

    In case you need references, see below thread on how to deal with this, in case of missing and in case when deploying an Access database.

    Hope this give some ideas and pointers for avoiding missing references and how to deal with them when deploying your Access applications.

    LVL 84

    Assisted Solution

    by:Scott McDaniel (Microsoft Access MVP - EE MVE )
    In most cases you should code to the "lowest common denominator" - that is, if you know that all users will be using at least Outlook 10.0, then make your reference and compile the app on a machine running Outlook 10.0. Access can "upsize" references (from 10 to 11, for example) but cannot downsize.

    However, as danishani suggest, late Binding is often a better choice. Using Late Binding, you can remove the reference entirely and Access/VBA will use whatever version is available on the machine. The only real issue with late binding is that you must be SURE to only use features/methods that are available in all supported versions of the library.

    there's also some performace issues associated with late binding, but in general those aren't too impactful on modern machines.
    LVL 26

    Assisted Solution

    As @LSMConsulting noted, you do your developing on the machine with the earliest version of Office on it.
    My environment has Access 2003/2007/2010 and Windows XP-32bit and Windows 7-32 bit and 64 bit.
    I do my developing on an Access 2003 / Windows 7 Pro-64 bit box, and I generally don't have reference grief.

    I had to learn that lesson the hard way, though.
    I tried to lead the organization in moving to Access 2007.
    4 months of busted references and corrupted forms, I gave up.
    It was way too much hassle to open a db in a virtual machine, fix the references, and compile it--and remember to do so each and every time.

    The Ribbon and the Nav Pain aren't my things anyhow :)

    Author Comment

    Thank you all for responding. Those were wonderful tips!

    Best wishes,

    Featured Post

    Find Ransomware Secrets With All-Source Analysis

    Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

    Join & Write a Comment

    I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
    Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
    Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
    In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

    755 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    21 Experts available now in Live!

    Get 1:1 Help Now