• Problem solved!!!

    There was nothing wrong with the connection string at all (apart from the tinyest of typos).

    This line:-
    CurrentDb.QueryDefs("DataBaseList").Connect = "ODBC;DRIVER=SQL Server;SERVER=" & server & ";DATABASE=Master"
    is perfectly valid except for the fact that the database name should be master not Master (note the case difference on the "M").

    This explains why the code was running on some servers (case-insensitive) but not on others (case-sensitive).