Ejecutar desde Access

Como hago para ejecutar a través de una macro en access un archivo .bat que se encuentra en mi disco D:\,,,, por que desde una macro porque necesito que al cerrar access desde un botón de un formulario en esa misma macro que se me ejecuta se produzca la ejecución del archivo .bat que es en definitiva para crear un respaldo de la base de datos que estoy abandonando, ¿qué sea dicho de paso daría error la ejecución del respaldo ya que se trata de grabar una base de datos abierta? En lo que me puedas ayudar te agradezco...

4 respuestas

Respuesta
1

Encantado de intentar ayudarte.

En primer lugar puedo saber algo de Mac, pero lo que es base de datos no las he trabajado nunca. De todas formar creo que el problema es genérico.

Por lo que me dices, creo que estas trabajado en una base de datos que has debido de migrar desde un pc.

Si esto es como creo, NO TE VA FUNCIONAR. Los archivos del tipo .bat, o .exe, etc. solo se pueden ejecutar en un entorno de Windows, y no correrán en un Mac, como no sea en modo emulación.

En Mac se utiliza otro tipo de aplicaciones como Apple Script para hacer Macros. También funcionaban hasta hace poco en el paquete Office Virtual Basic, y en este caso sí eran compatibles para las versisones MAC/PC. Pero depende del paquete que estés usando.

Agradecería feedback para saber si estoy en lo cierto.

Respuesta
1

¿Bueno y por que pones el evento del respaldo antes de que se cierre la aplicación?

Un ejemplo de una ruta para ejecutar un program es este

Private Sub Comando20_Click()
Shell "D:\ruta\archivo.bat"
End Sub

Tu le puedes cambiar la ruta y el nombre del archivo bat.

Muchas veces el conocimiento nos viene por la experiencia en lo que no nos resultó así que comenzá probándolo cerrado, si no se puede, entonces ya se te ocurrirá como hacerlo abierto. No se tal vez que se ejecute cada cierto tiempo en automático y en seguido plano. Bueno tal vez eso seria algo bueno..

me cuentas como te fue..

Entiendo lo que me dices pero 1º no se trabajar con código de visual pro eso lo de la macro se me hace mas fácil, 2º con la base de datos abierta no me lo hace directamente se ejecuta pero no hace la copia, si se te ocurre algo y me ilustras mas te agradezco.......

Bueno espero poder tener la capacidad para poder ilustrarte.. no se me da muy bien pero lo he de intentar esta vez

En el menu del entorno de access. En la pestaña crear, en el apartado otros, busca una flecha hacia abajo donde se desplegaran mas opciones..

Selecciona la opción modulo

En cuanto se habrá escribes este código

function backup()

dim nada

nada = Shell "D:\ruta\archivo.bat"
End function

Es necesario que escribas la ruta donde esta tu archivo bat.. para que la tengas bien pues ve a la carpeta.. y luego has click en la barra de direcciones sombreala cópiala y pégala en el código en lugar de ruta.. es decir sustituye ruta por la la ruta que acabas de copiar del explorador de window..

También sustituye archivo.bat por el nombre real de tu archivo...

Guardalo y ponle un nombre al modulo.

Ahora en el botón salir o exit que tienes ve a sus propiedades.. dale click derecho a ese botón y luego selecciona propiedades del menu contextual...

Luego en propiedades ve a la pestaña eventos

En el evento al hacer clic dale clic en el botón que aparece en el extremo derecho del campo.. junto a la flecha de despliegue y ahí te saldrán el manejador de macros.

Abajo de la macro que tienes para salir de tu aplicación

Eleje otra macro.. en este caso sera "ejecutar código"

En la parte de abajo del manejador de macros te aparecer un cuadro donde te pregunta que código es el que tienes que ejecutar..

Solo escribe

Backup

Guardalo y ciérralo

Ahora pruébalo haber que pasa... y me cuentas

Respuesta
1

A ver si me aclaro.

Tu tienes un archivo de access y quieres que lo último que haga antes de cerrarse sea ejecutar un .bat para hacerte un backup del mismo archivo. Es eso, no?

Si es eso, como bien dices no se puede hacer un backup de un archivo abierto, que es lo que intentas.

Es decir, sea una macro sea un procedimiento VB Access cede el control momentáneo al .bat, pero espera a que acabe para poder hacer la copia.

En lugar de eso te recomiendo otra solución: haz una copia de seguridad con el archivo cerrado, divide tu base de datos en dos archivos, uno que sólo contenga las tablas (datos) y otro que sólo contenga lo que no son tablas (programa).

Entra en programa y en la sección de tablas bórralas todas y después adjuntalas.

A Access le va a dar igual si están en el archivo local o en otro archivo, y entonces sí puedes hacer un backup. Es más, incluso puedes hacer que se compacte datos desde programa. Yo lo hago al empezar la ejecución de la aplicación cuando hago que datos sea uno o varios archivos access.

Respuesta
1

Prueba con un botón, le incrustas la macro que dice "ejecutaraplicacion"

No lo he probado y no se me ocurre otra solución.

Cierra el hilo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas