No se cómo será en el caso de access, pero hay dos planteamientos posibles:
- Asignale a tu cadena de conexión una ruta relativa. Es decir, en lugar de indicar una ruta completa como 'c:\programa\base.mdb' asignale solamente 'base.mdb'. Esto no funciona en motores como interbase, que tienen un proceso servidor corriendo en su propia ruta, pero es probable que si funcione con access.
- En tiempo de ejecución, podes averiguar la ruta donde corre tu ejecutable con ExtractFilePath(application.ExeName), de manera que podes usar esta ruta para asignar la cadena de conexión.
Solo debo aclarar que en el primer caso, la ruta no es relativa a la ruta del ejecutable, sino al directorio actual de la aplicación, que en el caso de iniciar con un acceso directo, es el que se coloca en "iniciar en".
Hasta luego.