Hay tres tipos de dsn, de los cuales el de sistema y el de archivo se diferencian en que el de sistema escribe los datos necesarios en el registro de windows y el de archivo lo hace en un archivo, este último con la ubicación C:\Archivos de programa\Archivos comunes\ODBC\Data Sources\ejemplo.dsn.
Para evitar que el usuario tenga que crear los dsn, crea un dsn de archivo y verifica que funcione, luego ábrelo con el block de notas y con los datos que aparecen allí, en VB crea una cadena con estos datos al iniciar el programa, y esta será tu cadena de conexion.
Esto funciona porque cuando le das el nombre de dsn el sistema operativo busca en el registro los mismos datos que le vas a dar tu explicitamente.
Cualquier inquietud me cuentas