Yo veo varias posibilidades:
1. La que no te daría el puerto, pero si la dirección de la carpeta (si está disponible). Y sería revisar todas las unidades disponibles y dentro de ellas si hay esa carpeta... eso se haría con
FileSystemObject. Por ejemplo uno de sus métodos es
FolderExists que devuelve true/false dependiendo de si la carpeta buscada existe o no. En cuanto el acceso al disco, pues con los métodos
DriveExists no devuelve si existe o no cierta unidad y para el acceso al disco específico (comprobar primero que exista), pues
GetDrive. Yo he usado esta estrategia para usar unidades de red (tanto para conectar a una base de datos en donde están efectivamente los datos -base de datos dividida-, como para copias de seguridad, etc)... Además, tienes la propiedad
Drives que te devuelve una colección con todos las unidades disponibles.
2. La que te daría más control del puerto, pero implica que tendrías que hacer parte del trabajo en VB.NET, C#... creando un componentes que después llamases desde Access, porque no creo que haya otra forma de usarlo directamente. Y sería a través de lo disponible en el espacio de nombres
System.IO.Ports.
3. La tercera es recurrir al API de Windows directamente..., pero te vas a meter un berenjenal de mucho cuidado.
Personalmente creo que con la primera opción tienes de sobra para lo que buscas. Aunque no te dará el puerto en si, si tendrás acceso al Pendrive o HD externo que está conectado al equipo... buscas la carpeta sobre la que hacer la copia de seguridad y escribes como si fuera en C:\ por ejemplo.
Un ejemplo de código que recorre todas las unidades y saca un mensaje con cada letra de unidad disponible:
Pero no dudo de que haya otras opciones y puede que alguna mejor.
Hasta luego