Well, the first thing to do is minimize the number of references you have. I
seldom, if ever, have any more than the essential ones. If all you have is
the essential ones, then make sure your clients have installed the current
service packs, and you should be on the same versions.
For the times when you must have additional references, there are a few
techniques you can use.
Check the advice MichKa has at
http://www.trigeminal.com/usenet/usenet026.asp.
Another approach, perhaps not as foolproof, is to store the details of each
in a table in your application.If you store the details of the files you're
referencing on your machine, then when you check whether there are any
problems with the references on your user's workstation, you'll know what
the file should be if the reference is broken. Tony Toews has a free version
checker that works this way. You can download it from
http://www.granite.ab.ca/access/ocxdllversionchecker.htm. While it doesn't
have the ability to repair the problem, it does identify when there is a
problem, allowing you to install the appropriate file(s).
Still another approach is the References Wizard developed by Terry Kreft,
and available (also for free) from
http://www.mvps.org/access/modules/mdl0022.htm at "The Access Web".
Finally, Peter Walker has an interesting approach that you can download (for
free) from
http://www.papwalker.com/dllhell/index.html. Peter not only
stores the details about each reference, he stores a binary copy of the file
as well! In this way, if a broken reference is found, the file is written to
the same folder as the application, and a reference set to it. Note that
this does have the potential of impacting other applications, since it can
change what version of the file is registered in the registry.