Blog

Ms Access – Ejecutar una importación guardada desde una macro

Posted by:

Aprovecho para documentar un procedimiento que inicialmente me parecía “sencillo y tonto” y que finalmente ha sido un poco más laborioso de lo esperado.

La necesidad que tenía era la de realizar una importación automática en Microsoft Access mediante macros en el Office 2007.

Bien, lo primero que he realizado ha sido la importación de la tabla manualmente, para lo cual desde la cinta de opciones he ido a Datos Externos, y en el bloque importar he seleccionado la opción de más para seleccionar la opción de ODBC.

Posteriormente, en el dialogo que me ha aparecido, he seleccionado la opción de Importar el origen de datos, y al final cuando solicita si queremos guardar el procedimiento le he dicho que sí y le he puesto como nombre “ImportTabla”.

Hasta aquí es relativamente sencillo, pues no deja de ser un proceso manual.

A la hora de automatizarlo via macros he dado el siguiente rodeo que si alguien quiere puede simplificar.

Lo primero que he hecho, ha sido crear una Macro y en acciones he seleccionado “Ejecutar Comando” y en comando he seleccionado la opción “importaciones guardadas” con un el problema que no nos da opción para especificar el nombre de la especificación.

Guardamos la macro para poder ejecutarla (le pondremos de nombre ImportarTabla)

Al Ejecutar la macro nos aparecerá una ventanita donde nos solicitará que Especificación de Importaciones queremos ejecutar.

Obviamente, estamos requeriendo la “ayuda” de un usuario, por lo que vamos a prescindir del “sujeto”.

Así que lo que haremos será seleccionar la macro creada “ImportarTabla” y en la pestaña “herramientas de base de datos” hay una opción que pone “Convertir Macros a Visual Basic”.

Esto nos genera un módulo dentro de la base de datos que si abrimos pondrá algo parecido a esto:

Function ImportarTabla()
On Error GoTo ImportarTabla_Err
DoCmd.RunCommand acCmdSavedImports

ImportaTabla_Exit:
    Exit Function

ImportarTabla_Err:
    MsgBox Error$
    Resume ImportarTabla_Exit

End Function

Donde debemos cambiar el código “DoCmd.RunCommand acCmdSavedImports” por este otro “DoCmd.RunSavedImportExport (“ImportTablas”)

Y de esta manera podemos asignar la Importación Guardada.

Fíjate que el módulo, lo que nos ha hecho ha sido crearnos una función con un contenido dentro. Sólo nos falta llamar a esta función desde una macro o desde un botón. Yo lo haré desde una macro, ya que lo ejecutaré todo con un autoexe.

y para ejecutar la funcion creada en el módulo, utilizaré la acción de “EjecutarComando” y en el comando asignaré la función creada.

Esto es el rodeo, así que podéis simplificar todo lo que he escrito para simplificarlo.

Espero que os ayude.

 

 

4


About the Author:

Discussion

  1. Lara  October 31, 2012

    No había tocado antes vb y ha funcionado a la perfección, cada vez aprecio más a la gente que comparte conocimientos de este manera…¡Muchas gracias!

  2. Juan Luis Olguin Lopez  July 24, 2013

    Muy buena publicacion, no es lo que queria pero me dio una muy buena idea!
    Gracias!

  3. Cata  March 8, 2016

    Genio!!! Gracias!!

  4. Oscar  April 1, 2016

    Dependiendo de las necesidades puede surgir que se necesite un botón que tenga la capacidad de hacer el mismo procedimiento.

    Entonces:
    Primero, crear un botón en el form (nombre ejemplo: “Importador”)
    Segundo, en las propiedades del botón, en el [Procedimiento de evento] “al hacer click”, ponemos este código:

    Private Sub Importador_Click()
    DoCmd.RunSavedImportExport (“ImportTablas”)
    End Sub

    Espero que a alguien le sirva.

Add a Comment

UA-30641277-1