No te envío ningún ejemplo, pero esto se puede entender de dos formas:
1- Independencia del motor/gestor de base de datos:
Puedes utilizar ADO con el correspondiente proveedor OleDb. Tan sólo habría que usar para cada proveedor la correspondiente cadena de conexión. Otra alternativa sería utilizar archivos DataLink (UDL) donde defines la conexión a la bd de forma externa, no siendo necesario recompilar nada al realizar los cambios sobre el fichero.
Supongo que independencia 100% en la práctica no será posible (dependerá de las funcionalidades de la aplicación, claro) pues por ejemplo, la sintáxis de una sentencia SQL puede variar de un motor de bd a otro.
2- Independencia del archivo (ubicación/nombre) que contiene la bd.
Evidentemente, sustituir en la cadena de conexión el nombre y ubicación de la bd por la correspondiente variable. La forma de informar esta variable queda al gusto de cada uno: recuperar del registro, un archivo de configuración, archivo UDL, menú abrir/seleccionar, etc.
Suerte.