Yo lo soluciono de esta forma:
En el directorio de la aplicación (App.path) tengo un fichero que suelo llamar Setup.mdb
Tengo en él muchos campos que aprovecho para personalizar la aplicación, pero los que interesan para este caso son
Número de usuario
Nombre de usuario
Clave de acceso
Ruta de la D.B.
(Naturalmente, el nombre y la clave están encriptados...)
Cuando un usuario ejecuta el programa se le pregunta por su Número y su Nombre; se hace un move al número indicado y se comprueba su nombre; si es correcto le doy tres oportunidades para introducir su Clave secreta; si no lo consigue, grabo en otro fichero la hora en que se ha intentado acceder y las claves que se han introducido, que suelen dar una orientación sobre quién ha "fisgado"...
Y cuando se pasa la barrera de la clave, se lee la ruta de la base de datos, que se definió al hacer la instalación, y que puede ser por ejemplo: "F:Archivos de programaMi aplicaciónDataName_DB.mdb", o bien "ServerUser0...."
Me funciona al 100 %. Incluso tengo hecha la fórmula para buscar y grabar esa ruta en el momento de la instalación de la aplicación para cada usuario.
Que te sea útil a tí también.