Discussion:
ejecutar una macro desde otra base de datos
(demasiado antiguo para responder)
gomezmon
2009-05-22 17:03:00 UTC
Permalink
Raw Message
Como puedo ejecutar una macro de Access o un código de VB desde otra base de
datos?

Gracias
Patxi Sanz
2009-05-23 13:39:43 UTC
Permalink
Raw Message
Hola Gomezmon:

Todo va a depender de qué necesitas hacer exactamente con ese código o
macro:

- Puedes agregar la otra base de datos como referencia de la que tienes
abierta, y luego usar sus módulos y clases, como si fuera una librería.

- Puedes crear un acceso directo a la otra base de datos o abrirla mediante
VBA e indicar que se ejecute una macro. Por ejemplo:

"c:\program files\microsoft office\office12\msaccess.exe" "c:\My Folder\My
Database.accdb" /x "MiMacro"

Hace que se abra la base de datos indicada y que se ejecute la macro
MiMacro. Tienes más información en el tema "Modificadores de la línea de
comandos para Access" de la ayuda de Access.

- Puedes automatizar Access y después ejecutar sus funciones y macros:

Function TestApp()
Dim app As Access.Application

'Iniciamos el objeto
Set app = New Access.Application

'Forzamos la seguridad a nivel bajo para que se ejecute el código y las
macros
app.AutomationSecurity = msoAutomationSecurityLow

'Abrimos la base de datos
app.OpenCurrentDatabase
"C:\Users\Patzi\Documents\Access\RibbonPad_2008-12-09.accdb"

'Ejecutamos una función
app.Run "testMe"

'Ejecutamos una macro
app.DoCmd.RunMacro "Macro1"

'Cerramos la base de datos
app.CloseCurrentDatabase

'Y quitamos la instancia de Access
app.Quit acQuitSaveNone
Set app = Nothing
End Function
--
Un saludo,


Patxi Sanz
Tudela (NA)
d***@clinicadealergia.com.ar
2016-07-25 10:34:16 UTC
Permalink
Raw Message
Post by Patxi Sanz
Todo va a depender de qué necesitas hacer exactamente con ese código o
- Puedes agregar la otra base de datos como referencia de la que tienes
abierta, y luego usar sus módulos y clases, como si fuera una librería.
- Puedes crear un acceso directo a la otra base de datos o abrirla mediante
"c:\program files\microsoft office\office12\msaccess.exe" "c:\My Folder\My
Database.accdb" /x "MiMacro"
Hace que se abra la base de datos indicada y que se ejecute la macro
MiMacro. Tienes más información en el tema "Modificadores de la línea de
comandos para Access" de la ayuda de Access.
Function TestApp()
Dim app As Access.Application
'Iniciamos el objeto
Set app = New Access.Application
'Forzamos la seguridad a nivel bajo para que se ejecute el código y las
macros
app.AutomationSecurity = msoAutomationSecurityLow
'Abrimos la base de datos
app.OpenCurrentDatabase
"C:\Users\Patzi\Documents\Access\RibbonPad_2008-12-09.accdb"
'Ejecutamos una función
app.Run "testMe"
'Ejecutamos una macro
app.DoCmd.RunMacro "Macro1"
'Cerramos la base de datos
app.CloseCurrentDatabase
'Y quitamos la instancia de Access
app.Quit acQuitSaveNone
Set app = Nothing
End Function
--
Un saludo,
Patxi Sanz
Tudela (NA)
Hola Patxi Sanz
Pude seguir tu ejemplo que realmente fue muy útil. Pero mi idea es ejecutar un macro en otra base que esta activa o sea que no necesite abrirse ni cerrarse al terminar la macro.

Me pasaría como se hace por que la verdad llevo intentando toda la tarde sin exito

Muchas gracias

Gustavo

Loading...