¿Cómo crear una tabla dinámica en MS-Access 2016?

¿Cómo crear una tabla dinámica en MS-Access 2016?

¿Se puede crear una tabla dinámica en un formulario de Access con un marco de objeto independiente?

Tengo una BBDD ejecutable (miBBDD. Accde). En el formulario de inicio, cada vez que se selecciona un cliente de una lista desplegable, se accede a sus datos y se guardan estos datos en una tabla de la BBDD ejecutable (_tmp1).

En un archivo de excel (miTD.xlsm), he creado una tabla dinámica cuyo origen es la tabla "_tmp1" de la BBDD ejecutable (miBBDD. Accde), con las siguientes opciones de actualización:

* Al lado de la tabla dinámica, he creado un botón "actualizar" que ejecuta una macro que ejecuta el comando "Datos>Conexiones>Actualizalo todo (Ctrl + Alt + F5)".

* He configurado el botón "Propiedades" de "Datos>Conexiones" con las siguientes opciones:

. Activa la actualización de fondo (Sí)

. Actualizalo cada 1 minuto

. Actualiza los datos al abrir el archivo (Sí)

Es decir, cada vez que abro este archivo de excel (miTD.xlsm), automáticamente se actualiza la tabla dinámica con los valores de la tabla (_tmp1) de la BBDD ejectuable (miBBDD. Accde).

He creado un "marco de objeto independiente" (OLEind1) en un formulario de la BBDD ejecutable (miBBDD. Accde) cuyo origen es la tabla dinámica del archivo de excel (miTD.xlsm) con las siguientes propiedades:

* Tipo OLE: Incrustado

* Tipo OLE permitido: Ambos

* Clase OLE: Microsoft Excel Macro-Enabled 12

* Clase: Excel. SheetMacroEnabled. 12

* Opciones de actualización: Automática

* Tipo de presentación: Contenido

* Habilitado: Sí

* Bloqueado: No

...

* Activación automática: RecibirEnfoque

Es decir, cada vez que accedo al formulario de mi BBDD ejecutable (miBBDD. Accde) donde está este marco de objeto independiente (OLEind1) y recibe el enfoque, que se actualize automáticamente con los datos de la tabla dinámica del archivo de excel (miTD.xlsm).

El problema es que cuando selecciono un cliente en el formulario de inicio y voy al formulario donde está el marco de objeto independiente (OLEind1), no se actualiza con los valores del cliente seleccionado, todo y que en el VBA de este formulario pongo el enfoque en "OLEind1":

Private Sub Form_Load()

...

OLEind1.SetFocus                                             'pongo el enfoque en el marco de objeto independiente

Msgerr = MsgBox("TD actualizada correctamente", vbExclamation, "") = vbOK

OLEind1.Action = acOLEClose                         'cierro la visualización en formato tabla dinámica

Texto1.SetFocus                                               'cambio el enfoque a un cuadro de texto

...

End Sub

No obstante esto, si salgo de la BBDD y abro el archivo de excel (miTD.xlsm), entonces la tabla dinàmica se actualiza automàticamente con los valores de la tabla (_tmp1) de la BBDD ejecutable (miBBDD. Accde).

1 Respuesta

Respuesta
1

He estado realizando diferentes pruebas con el código VBA de "Private Sub Form_Load()" y he conseguido que se actualize el marco de objeto independiente con el siguiente código:

Private Sub Form_Load()

...

OLEind1. SetFocus

Msgerr = MsgBox("TD actualizada correctamente", vbExclamation, "") = vbOK

...

End Sub

Después de validar el mensaje, los datos del objeto OLE se actualizan correctamente. Para quitar el enfoque de "OLEind1", tengo que hacer clic con el ratón en cualquier parte del formulario.

No es estrictamente lo que quiero, porque quería un proceso totalmente automático, pero funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas