Ejecutar Modulo de Access desde Excel

Quería saber si es posible, y si es así como se tendría que hacer, ejecutar un modulo de una base de datos de access desde una macro.

2 Respuestas

Respuesta
1
Si claro que es posible.
Tendrás que crear una instancia de objeto MS Access en visual basic:
Abre el editor de Visual Basic (Alt+F11)
Luego, haz "Herramientas" | "Referencias ..."
Y elige de la lista: "Microsoft Access 8.0 Object Library"
Y en un módulo nuevo ingresa esto:
Sub RUNACCpr()
Dim APPACC As New Access.Application
Dim ACCFILE As String
ACCFILE = "C:\SCIFI\TUARCHIVO.MDB"
APPACC.OpenCurrentDatabase (ACCFILE)
APPACC.Run ("TuMAcroAcc")
APPACC.Quit
Set APPACC = Nothing
End Sub
Esto claro está es un versión simplificada que asumen que tu archivo de access existe y que el módulo también.
Espero que te haya orientado.
Un gran abrazo!
Fernando
Hola
Al ejecutar el código que me propusiste (evidentemente cambiando el nombre del archivo y de mi macro)sale un error
Error 2517 en tiempo de ejecución.
"Tu archivo.MDB" No puede encontrar el procedimiento 'TuMacroAcc'.@* Utilizó el método Run en Visual Basic...
Bueno y unas cuantas cosas más, el caso es que probé a hacer el ejemplo que sale si te sitúas en el comando Run y pulsas F1.
Y con el ejemplo me sale el mismo error, no se si se me esta escapando algo o tengo que activar alguna cosa más aparte del Microsoft Access 8.0 Object Library
Muchas gracias de antemenao por la antencion prestada y un saludo
He probado la rutina antes de enviártela y funcionó correctamente.
Estimo entonces, que el problema está en la definición del procedimiento en tu módulo de MS Access.
Suuesto, claro está, que los nombres sean los correctos, asegúrate que la macro en Access sea absolutamente público para que sea posible ejecutarlo desde una aplicación externa.
Eventualmente, habría que revisar si tu versión de DAO es compatible con tu Office...
Pero asegúrate primero de lo anterior.
Un abrazo!
Fernando
Hola
He revisado todo y esta correcto, y sigue fallando.
Estoy trabajando con Office97 en WindowsNT, ¿podría eso influir en algo?
Me ha comentado un amigo que igual tenia que actualizar las WINAPI de mi equipo, pero sinceramente no tengo ni idea de a que se refería.
Un saludo
Hola de nuevo
Al hacer esta modificación
Base.RunCommand(acCmdRunOpenMacro)
En lugar de
Base.Run ("Mimacro")
El modulo funciona, pero me pide que elija entre todas las macros que tengo en la base de datos. Es una solución pero no la optima puesto que no quiero que se vea nada de esa base de datos.
Espero no estar molestando mucho
Un saludo
Hola otra vez
Di con el problema, salia ese error por que el modulo de access tenia un nombre POR y la función del modulo tenia el mismo nombre, con lo cual se liaba, con solo cambiar el nombre del modulo la macro que propusiste funciono correctamente.
Muchas gracias, un saludo y perdón por la tardanza en finalizar la pregunta
Respuesta

Quise utilizar el código publicado pero me genera el error 2517 Access no pudo encontrar el procedimiento 'nombre de la macro' a que puede deberse el error

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas