Cómo actualizar rápidamente una tabla vinculada cuando se cambia el nombre del archivo externo

Comparte ahora:

Las tablas vinculadas pueden ser fantásticamente útiles (aunque no todo el tiempo, por supuesto), especialmente cuando se trata de información externa que cambia regularmente. Un ejemplo típico podría ser cuando un proveedor le da acceso a su archivo de precios mensual actual. Pero, ¿qué sucede cuando emiten el archivo el próximo mes y el nombre del archivo cambia de "Lista de precios-01-01-2016" a "Lista de precios-01-02-2016"? Lo primero que sucederá es que su enlace se romperá, por lo que tendrá que actualizarlo manualmente. Cada vez que cambian el nombre del archivo. Eso también se aplica a los nombres de las tablas (¡por supuesto!). ¿Hay alguna manera de hacer esto rápida y fácilmente? Nos alegra que lo hayas preguntado. Sigue leyendo y descubre cómo ...

Preparando la escena - el escenario

Administrador de tablas vinculadasEn este artículo, usaré un escenario ficticio, ¡pero uno que estoy seguro de que reconocerá rápidamente!

Cada mes, Acme Trading nos envía una lista de precios actualizada para todos los consumibles utilizados en DataNumen. Para saber cuánto gastaremos en papelería cada mes, enlazamos a ese archivo en nuestra base de datos de administración de oficina.

Cambiar el nombre del archivoEl problema es que, aunque el formato del archivo se mantiene igual, el nombre del archivo cambia cada mes. El mes pasado se llamaba "stationary costs Jan 2017.xls", y este mes se llama "stationary costs Feb 2017.xls".

No es un gran cambio, estoy seguro de que estará de acuerdo, pero a menos que nos tomemos la molestia de cambiar el nombre del archivo manualmente (una vez que hayamos quitado el archivo anterior o lo eliminemos), o pasamos por el proceso de vincular la tabla a través del administrador de tablas vinculadas en Access.

Como no queríamos hacer esto, creamos el siguiente código para hacerlo en su lugar, mucho más fácil, como estoy seguro de que verá:

Public Sub UpdateLink (tableName As String, newFileName As String)
    Dim objDB As Database
    Dim objTableDef As TableDef
    Dim newConnect as String
    
    Set objDB = CurrentDb
    Set objTableDef = objDB.TableDefs(tableName)

    'format of the connection string in our case, for example, is:
    ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type
    newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName
    objTableDef.Connect = newConnect
    objTableDef.RefreshLink

    Set objTableDef = Nothing
    Set objDB = Nothing
End Sub

Explicando el código

Como puede ver, pasamos el nombre de la tabla (vinculada), junto con el nombre del nuevo archivo al que debe vincularse la tabla. El nombre del archivo debe incluir la ruta completa al archivo. Un posible problema al principio es obtener el formato correcto para la cadena de conexión que se debe colocar en la variable "newConnect". Si bien existen muchas fuentes para encontrar el formato correcto, una de las más sencillas que he encontrado es simplemente observar la cadena de conexión de la tabla vinculada actual. Para ello, simplemente agregue la siguiente línea justo debajo de la línea "Set objTableDef = objDB.TableDefs(tableName)":

Debug.Print (objTableDef.Connect)

Eso imprimirá la cadena de conexión existente en la ventana de depuración / inmediata del editor de código (si aún no está visible, presione CTRL-G desde la pantalla del editor de código de VBA para alternar la visibilidad de la ventana Inmediato antes de ejecutar el código.

Una advertencia

Como siempre, no olvide que si bien el fragmento de código anterior puede ayudarlo a ahorrar tiempo cuando necesite cambiar el archivo al que está vinculada una tabla, lo que no puede hacer es ayudarlo si encuentra alguno Acceso al archivo dañado, así que asegúrese de mantener copias de seguridad y saber a dónde acudir si todo lo demás falla.

Introducción del autor:

Mitchell Pond es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar daño SQL y productos de software de recuperación de Excel. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.