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

 
Vista:
sin imagen de perfil
Val: 68
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

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

Publicado por JESUS (30 intervenciones) el 05/02/2018 14:14:10
¿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).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 68
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

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

Publicado por JPG (30 intervenciones) el 06/02/2018 10:57:17
He estado realizando diferentes pruebas con el codigo VBA de "Private Sub Form_Load()" y he conseguido que se actualize el marco de objeto independiente con el siguiente codigo:

1
2
3
4
5
6
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar