Bloquear un programa Access a partir de una fecha determinada

Escrito por Administrador

27 de octubre de 2021

Hoy voy a enseñaros una manera muy sencilla de bloquear un programa hecho en Access a partir de una fecha determinada usando VBA.

Muchas veces, necesitamos enviarle al cliente el programa para que nos valide lo que vamos haciendo, o simplemente para que vea una muestra de cómo va quedando. Pero, no queremos realizar la entrega definitiva, y menos si aún no nos ha pagado.

Por eso, es necesario bloquear el programa Access pasada una fecha, una vez que el cliente haya tenido tiempo de testearlo.

La solución es introducir un pequeño código en la carga del formulario principal del programa. Así, lo primero que haremos al cargar el formulario, será comprobar si hemos superado dicha fecha, y en caso afirmativo, cerrar el programa automáticamente.

El código a implementar en el evento “Al cargar” del formulario principal, sería el siguiente

Private Sub Form_Load()

'Fecha de caducidad

If Date < #5/15/2050# Then

Else

msgbox "Fecha de prueba expirada. Contacte con el administrador."

DoCmd.Quit

End If

End Sub

En este caso, si la fecha es superior al 15 de mayo de 2050, se mostrará un mensaje advirtiendo de la caducidad del programa, y se cerrará. Si quieres modificar la fecha, solo tienes que sobrescribir la que está marcada en rojo. Date cuenta que está en formato americano. También, te dejo un enlace donde hablo sobre la función msgbox en macros.

A continuación, voy a explicarte paso a paso cómo introducir este código en el evento que hemos comentado anteriormente, por si no supieses como hacerlo.

Lo primero que debes hacer es irte a la vista Diseño del formulario principal (el que se abre al ejecutar el programa). A la derecha tienes la barra de propiedades. Debes seleccionar la pestaña "Eventos" y pulsar sobre los tres puntitos del evento "Al cargar".

bloquear-access-fecha

Ahora, selecciona la opción "Generador de código".

bloquear-access-fecha

Por último, introduce el código. Debería quedarte así,

bloquear-access-fecha

Si ejecutamos el programa, y la fecha que hemos configurado es anterior a la del día en curso, nos apareceá un mensaje como este y el programa se cerrará.

bloquear-access-fecha

Otro detalle importante es que el código VBA debe estar protegido por contraseña. De lo contrario, cualquiera que acceda a él, podrá cambiar la fecha de caducidad.

Para bloquearlo, no hay más que pulsar ALT+F11 para abrir el editor VBA.

bloquear-access-fecha

Después, nos ponemos encima del proyecto y pulsamos el botón derecho del ratón para abrir el menú contextual. Seleccionamos la opción “Propiedades de…”

bloquear-access-fecha

Se abrirá una pantalla como la siguiente. Elegimos la pestaña “Protección” y marcamos el tick de “Bloquear proyecto para visualización”.

A continuación, introducimos la contraseña que queramos.

bloquear-access-fecha

La próxima vez que abramos el programa e intentemos acceder al código del proyecto, nos pedirá la contraseña introducida.

bloquear-access-fecha

De esta manera, has aprendido a bloquear un programa o base de datos Access a partir de una fecha determinada. Así que, ya puedes enviársela al cliente sin ninguna preocupación.

Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.

Hasta la próxima.

Si te ha servido y quieres donar

6 Comentarios

  1. Avatar

    Tienes razón, no había caído. Estaba pensando más en la seguridad y el pícaro, que en la operatividad, je je. Espero con impaciencia el post. Gracias.

    Responder
  2. Avatar

    Pero seguirías teniendo el mismo problema si al usuario le da por ir cambiando la fecha del sistema.

    Próximamente colgaré un post para que veas cómo se realizaría con un contador.

    Saludos.

    Responder
  3. Avatar

    Gracias por el apunte, admin. Si me pudiera enviar al correo un pequeño ejemplo de cómo hacerlo, se lo agradecería.En cualquier caso, tengo la idea de crear una propiedad personalizada que guarde en VBA la fecha de la primera apertura de la BD. Creo que de esta forma, al estar el código protegido, sería algo menos vulnerable que la creación de referencias en tablas. Muchas gracias, y saludos.

    Responder
  4. Avatar

    Buenas. Pero si tienes acceso a cambiar la fecha del ordenador, ya puedes acceder. ¿Cómo se podría evitar esa circunstancia?. Gracias.

    Responder
    • Avatar

      Hola Pedro,

      En principio el usuario no sabe el motivo por el que el programa ha dejado de ejecutarse. Es raro que se pusiese a cambiar la fecha en el PC.

      La única forma de bloquear el acceso al programa sin usar fechas, sería usando un contador. Por ejemplo, podrías guardar en una tabla el número de veces que quieres que se ejecute el programa e ir actualizando su valor cada vez que se abra (restando una unidad).

      Saludos.

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Últimas publicaciones

Categorías

marzo 2024
LMXJVSD
 123
45678910
11121314151617
18192021222324
25262728293031

Debates en el foro

Avatar
Formularios con ADO

Contacto