Cómo compilar un fichero Access (de MDB a MDE)

Os explicamos en este artículo cómo generar, a partir de una base de datos Access (.mdb), un fichero no modificable por un usuario «normal» (mde). Lo que explicaremos paso a paso es como «compilar» un fihero mdb para convertirlo en mde y evitar que el usuario pueda modificar objetos (tablas, formularios, consultas, macros, etc.). También explicamos cómo dividir una base de datos access en dos, separando las tablas del resto de los objetos.

Preparar la seguridad del fichero Access (mdb) para convertirlo a MDE

A continuación explicamos cómo convertir una base de datos Access (con extensión .mdb) que es modificable directamente (formularios, consultas, tablas, etc.) en un fichero compilado no modificable (salvo los datos de las tablas) MDE.

Abriremos Microsoft Access, crearemos las tablas, consultas, formularios, macros, etc que deseemos. Crearemos también un formulario «principal» que contendrá los accesos (botones) a los demás formularios, consultas o tablas que deseemos.

Cuando tengamos creada la base de datos Access, la abriremos y accederemos a la opción del menú “Herramientas” – “Inicio…”:

Cómo compilar un fichero Access (de MDB a MDE)

En la ventana de «Inicio» seleccionaremos las opciones que queramos según el nivel de seguridad que se quiera, a continuación explicamos las opciones de seguridad disponibles para el fichero Access y MDE que se generará:

  • Título de la aplicación: nombre que aparecerá en la barra de título del fichero MDE resultante, será el nombre de la aplicación Access (por ejemplo «AjpdSoft Facturación».
  • Icono de la aplicación: si queremos que nuestro fichero MDE tenga un icono asociado (como si de un ejecutable se tratase) seleccionaremos aquí un icono (con extensión .ico).
  • Barra de menús: si hemos creado una barra de menús personalizada podremos seleccionarla para que aparezca en la aplicación MDE.
  • Permitir el uso de menús no restringidos: mostrar menús estándar de Access.
  • Permitir el uso de menús contextuales predeterminados: mostrar menús contextuales (al pulsar el botón derecho) estándar de Access (filtros, búsquedas, etc.).
  • Usar las teclas especiales de Access: esta opción no es recomendable marcarla, si la marcamos permitirá al usuario que al abrir la aplicación MDE con la tecla shift pulsada aparezca la ventana de la base de datos, lo que le permitirá modificar los objetos de la misma: consultas, tablas, formularios, macros, etc.
  • Mostrar formulario/página: si tenemos un formulario creado con los botones y demás para que el usuario pueda acceder a las tablas, consultas u otros formularios lo seleccionaremos en esta opción. El formulario que seleccionemos en esta opción será el primero que aparezca al ejecutar el fichero MDE, por lo que es recomendable que sea un formulario que permita acceso al resto de opciones de la aplicación.
  • Presentar la ventana Base de datos: si marcamos esta opción aparecerá la ventana de Base de datos, lo que permitirá al usuario modificar y eliminar objetos (formularios, tablas, consultas, macros, etc.).
  • Presentar la barra de estado: mostrará una barra inferior con información adicional.
  • Barra de menú contextual: si hemos creado una barra de botones personalizada para nuestra aplicación MDE la podremos seleccionar en esta opción.
  • Permitir el uso de las barras de herramientas incorporadas: mostrará las barras de botones propias de Access, no es recomendable marcar esta opción.
  • Permitir cambios en barras de herramientas y menús: permitirá que el usuario pueda modificar y personalizar las barras de herramientas añadiendo o quitando opciones, no es recomendable marcar esta opción.
Cómo compilar un fichero Access (de MDB a MDE)

Con estas opciones lograremos un poco de seguridad para que el usuario no vea “a simple vista” las tablas, el código, las consultas y los menús propios de Access. Pero, por supuesto, aún faltaría un paso para hacer una aplicación “auténtica” (dentro de las posibilidades de Access), es decir, para que el usuario no pueda modificar los formularios, los informes, los macros, …

Con lo anterior, si un usuario pulsa la tecla F11 ó mantiene las mayúsculas pulsadas al abrir el fichero Access podría modificar todo, incluido el código fuente. Para solucionar esto hay una opción en Access llamada “Crear un archivo MDE”, para ello accederemos al menú “Herramientas” – “Utilidades de la base de datos” – “Crear archivo MDE”:

Cómo compilar un fichero Access (de MDB a MDE)

Esta opción “compila” la base de datos Access lo que permitirá que el código fuente (macros), los formularios, los informes, la estructura de las tablas y consultas ya no serán modificables, sí que seguirán siendo modificables. Al finalizar creará un fichero MDE que sería como el ejecutable de una aplicación. Este será el fichero que utilizará el usuario final. 

Recomendaciones importantes antes de crear un fichero MDE

Antes de crear el fichero MDE es recomendable dividir el fichero mdb de Access en dos para separar los datos (tablas) de los formularios, de esta forma, si tenemos que realizar alguna modificación en los formularios (que será lo habitual) podremos actualizar el fichero más fácilmente:

El primero contendrá sólo las tablas (que son menos propensas a modificaciones). Este fichero no será compilado, de esta forma, si realizamos alguna modificación en las tablas no será necesario volver a compilarlo. Como método de protección contra las modificaciones indebidas por parte de usuarios malintencionados le añadiremos una contraseña. Para ello abriremos la BD de las tablas en modo exclusivo, desde el menú «Archivo» – «Abrir», seleccionaremos la mdb que contenga sólo las tablas y en la parte derecha del botón «Abrir» seleccionaremos «Abrir en modo exclusivo»:

Cómo compilar un fichero Access (de MDB a MDE)

Estableceremos la contraseña para la base de datos, para ello accederemos al menú «Herramientas» – «Seguridad» – «Establecer contraseña para la base de datos…»:

Cómo compilar un fichero Access (de MDB a MDE)

Es conveniente introducir una contraseña larga y con caracteres “raros” por ejemplo: “estoesunapruebaññ#”, pues existen programas capaces de obtener la contraseña de los ficheros Access, con esto se lo pondremos un poco más complicado:

Cómo compilar un fichero Access (de MDB a MDE)

El segundo fichero contendrá todo lo demás (consultas, formularios, código fuente, macros, etc) que suelen modificarse más a menudo. Este fichero contendrá las tablas de forma vinculada (enlace a las tablas del fichero de datos anterior), para ello abriremos la mdb con los objetos modificables (formularios, informes, macros, módulos, consultas) y accederemos a la opción «Tablas», pulsaremos el botón «Nuevo». En la ventana de «Nueva tabla» seleccionaremos «Vincular tabla» y pulsaremos «Aceptar»:

Cómo compilar un fichero Access (de MDB a MDE)

Seleccionaremos el fichero que contiene las tablas (el que hemos protegido con una contraseña), en nuestro caso «datos.mdb» y pulsaremos el botón «Vincular»:

Cómo compilar un fichero Access (de MDB a MDE)

Introduciremos la contraseña (sólo la pedirá una vez):

Cómo compilar un fichero Access (de MDB a MDE)

Y seleccionaremos la tabla o tablas a vincular:

Cómo compilar un fichero Access (de MDB a MDE)

Con esto lo que conseguimos es que cuando tengamos que hacer algún cambio en los formularios, consultas, informes, código,… y lo compilemos será suficiente con que al usuario le reemplacemos dicho fichero por el nuestro. Separando así los datos de los objetos modificables. Si no hacemos esta división tendremos muchos problemas para las actualizaciones, pues habrá que descompilar el MDE para convertirlo en mdb y realizar las modificaciones, en este proceso el usuario no podrá trabajar con la base de datos. En cambio, al hacer la división, los desarrolladores podremos modificar los informes, formularios, consultas, código sin molestar al usuario y actualizar este fichero en el último momento.

Una vez que hayamos realizada nuestra aplicación entregaremos al usuarios el fichero de las tablas (protegido con contraseña) y el fichero MDE resultante de la compilación del fichero del código fuente y los formularios (tal y como se indica al principio de este manual).

Por supuesto, si tenemos que hacer alguna modificación en el fichero de las tablas tendremos que anotar dichas modificaciones para hacerlas luego en las tablas del usuario. Salvo en el caso en que sea una nueva tabla que será suficiente con copiar (de nuestro fichero) y pegar (en el del cliente). En tablas ya creadas y que contengan información válida no habrá más remedio que hacer las modificaciones manualmente.

Con estos pasos conseguiremos que el usuario sólo podrá abrir el fichero MDE (el compilado y, con lo cual, protegido) y no podrá acceder al fichero de los datos directamente (pues tiene una contraseña).

Aún se puede proteger un poco más el fichero del código fuente compilado, pues si el usuario mantiene pulsada la tecla mayúsculas mientras ejecuta el fichero MDE podrá modificar y eliminar las consultas, las tablas vinculadas y las macros. Aunque esto no es del todo problemático pues sería suficiente con volver a entregar el fichero MDE, es conveniente ocultar todos los objetos para que, al menos, el usuario no los vea directamente. Para ello accederemos al fichero del código fuente (antes de compilarlo) y cambiaremos la propiedad “Oculto” de todos los objetos (Tablas, Consultas, Macros, Informes, Módulos,…), pulsando con el botón derecho del ratón sobre el objeto a ocultar y seleccionando «Propiedades»:

Cómo compilar un fichero Access (de MDB a MDE)

En Atributos marcaremos la opción «Oculto» y pulsaremos «Aceptar»:

Cómo compilar un fichero Access (de MDB a MDE)

Una vez que hayamos ocultado todos los objetos compilaremos el fichero y abriremos el fichero MDE resultante manteniendo pulsada la tecla mayúsculas, accederemos al menú “Herramientas” – “Opciones…”, seleccionaremos la pestaña “Ver” y desmarcaremos la opción ”Objetos ocultos” y “Objetos del sistema”:

Cómo compilar un fichero Access (de MDB a MDE)

Este fichero será el que entreguemos al usuario.
Los ficheros resultantes:

Cómo compilar un fichero Access (de MDB a MDE)
  • datos.mdb: base de datos Microsoft Access que contendrá sólo las tablas de la aplicación.
  • Ejecutable.mdb: base de datos Microsoft Access que contendrá todos los objetos salvo las tablas: formularios, consultas, informes, macros, módulos. Esta tabla se vinculará a «datos.mdb» mediante tablas vinculadas.
  • Ejecutable.mde: fichero MDE resultante de la compilación del fichero anterior, «Ejecutable.mdb».

Al usuario se le entregará el fichero «datos.mdb» (protegido por contraseña) y «Ejecutable.mde».

Tecnologías empleadas

Para realizar este artículo hemos utilizado Microsoft Access 2002. Para el resto de versiones este proceso es parecido. En el caso de Microsoft Access 2007 hemos de decir que incluye una utilidad para dividir la base de datos en dos de forma automática (separando las tablas del resto de los objetos).

alonsojpd

alonsojpd

Presidente y fundador de Proyecto A y AjpdSoft

También te podría gustar...

Deja una respuesta