
Originally Posted by
Simon Lloyd
This is the approach that i would prefer, however i thought it would have been a fairly simple case...
Unfortunately, no. It could probably be made to work along those lines, but it would be a bit messy.

Originally Posted by
Simon Lloyd
My reservation with an Add-In as you said is the installation on each persons machine, if there is an Add-In doesn't the user have control over these via the toolbar?, you know what people are like - see something that wasnt there before believe they dont need it and delete it!
Actually, the add-in will not show up on the toolbar unless you tell it to. Unless you create code for it, no toolbars or menu items are created. The only place it will show is in the Add-ins dialog box. And even if a user clears it from there, so long as the code is placed in the 27 workbooks to check for it, those workbooks could just reinstall it.

Originally Posted by
Simon Lloyd
This level of control would be good, however i don't relish the thought of going through every workbook adding the code setting the reference in the VBE to the Microsoft ActiveX Data Object 2.x library!
Oh, it's not that bad. You can even add a reference by code, if you like:
Sub AddReference()
' Macro purpose: To add a reference to the project using the GUID for the reference library
Dim strGUID As String, theRef As Variant, i As Long
' Update the GUID you need below.
strGUID = "{00000200-0000-0010-8000-00AA006D2EA4}"
' Set to continue in case of error
On Error Resume Next
' Remove any missing references
For i = ThisWorkbook.VBProject.References.Count To 1 Step -1
Set theRef = ThisWorkbook.VBProject.References.Item(i)
If theRef.isbroken = True Then
ThisWorkbook.VBProject.References.Remove theRef
End If
Next i
' Clear any errors so that error trapping for GUID additions can be evaluated
Err.Clear
' Add the reference
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:=strGUID, Major:=1, Minor:=0
' If an error was encountered, inform the user
Select Case Err.Number
Case Is = 32813
' Reference already in use. No action necessary
Case Is = vbNullString
' Reference added without issue
Case Else
' An unknown error was encountered, so alert the user
MsgBox "A problem was encountered trying to" & vbNewLine _
& "add or remove a reference in this file" & vbNewLine & "Please check the " _
& "references in your VBA project!", vbCritical + vbOKOnly, "Error!"
End Select
On Error GoTo 0
End Sub

Originally Posted by
Simon Lloyd
By the way do you know it was Sunday when you posted this?, don't you rest? LOL
LOL! This is my hobby, so no. 
At any rate... the addin route is still probably the best route, but adding the code to each workbook is much easier. It's up to you still.