Saltar al contenido

Celdas pierden referencia al actualizar la Tabla desde Access


Recommended Posts

publicado

Saludos,

Tengo formulas en varias celdas que se alimentan de una Tabla llamada TablaSubAlim la cual reside en el mismo Workbook.. Sin embargo ahora he tenido la necesidad que esta tabla se alimente desde una Tabla que está en Access.  Con este código logré hacer esa conexion de manera automática.

'Private Sub Worksheet_Activate()
'Application.ScreenUpdating = False
'Dim l As ListObject
'Dim q As QueryTable
'Dim s As String
'
'
''CONEXION A LA BASE DE DATOS 
'Cells.Delete
's = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Jet OLEDB:Database Password="" ;Data Source="
's = s & "\\DATABASE_TABLASUBALIM\DatabaseTablaSubAlim.accdb"
'Set l = ActiveSheet.ListObjects.Add(xlSrcExternal, s, , xlYes, ActiveSheet.Cells(1, "A"))
'Set q = l.QueryTable
'q.SavePassword = False
'q.CommandType = xlCmdTable
'q.CommandText = "TablaSubAlim"
'q.Refresh

La tabla actualiza de manera automática pero las celdas que tienen formulas haciendo referencia al nombre de TablaSubAlim pierden la referencia. ¿Como puedo hacer que la tabla actualice pero que las celdas no pierdan la referencia?

publicado

Hola

El método Add del objeto ListObjects lo que hace es crear una nueva tabla que normalmente tiene un nombre que Excel define de forma predeterminada consecutiva y probablemente tus fórmulas hacen referencia a un nombre que evidentemente, con lo que te menciono, va cambiando. No debería ser necesario que crees una tabla (Listobject) cada vez, solo debería ser necesario actualizar los datos, entendiéndose que ya la conexión podría/debería estar realizada, pero claro, eso no lo sabemos pues en realidad no has dado detalles. Quizás, y ojo que digo solo "quizás", asignando el mismo nombre siempre (aunque sigo creyendo que es innecesario crear una tabla cada vez), podría resultar. Agrega algo así antes del Refresh:

q.ListObject.DisplayName = "Nombre de la tabla que se usa en las fórmulas"

Obvio al no tener tus archivos yo no puedo garantizar que resulte.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.