Proteger base de datos de copias

Me gusto tu respuesta sobre crear un archivo que sirva de switch para verificar si se puede usar la base de datos en la PC o no, ¿por favor me podrías ayudar con el código?

Respuesta
1

Concretamente lo que hice fue que al abrir un documento Access consultara de la existencia de un archivo excel en la misma ruta.

Este archivo a consultar tiene que ser con el mismo año en curso según calendario del Pc, si no esta o no coincide con el año en curso, la Base de Datos en Access no se abre.

Al ser código VBA se puede utilizar en Excel.

1º Creo el archivo Excel con extensión xls de nombre "2020".

2º Localizas el primer evento que se origina en tu Excel o Access al abrirlo e incorporas este código.

Dim fichero As String

Dim fso As New FileSystemObject

fichero = CurrentProject.Path & "\" & YEAR(Date) & ".xls"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(fichero) Then

    'No hagas nada si existe

Else

   DoCmd.Quit acExit

End If

End Sub

3º Vete por Herramientas -> Referencias -> activa Microsoft Scripting Runtime.

4º Cierra el documento y vuelve a abrirlo... funciona ok

5º Quita de ubicacio o ruta el doc 2020 y prueba a abrir de nuevo tu doc o archivo... no debería abrir.

2 respuestas más de otros expertos

Respuesta
1

Adicionalmente de desactivar la tecla Shift puede utilizar el siguiente código que lee el número del procesador del PC, si no coincide cierra la aplicación:

Crear un módulo e ingresar el siguiente código:

Necesita en Herramientas, Referencias hacer referencia a la librería Microsoft WMI Scripting vx. X Library, en donde x.x es la versión de su pc.

Coloque este código en la macro Autoexec. Si alguien intenta abrir en otro pc el programa obtendrá el siguiente mensaje:

Lógicamente cambie el mensaje de acuerdo con sus necesidades. Si gusta solicite una copia del ejemplo a [email protected] haciendo referencia a la pregunta en el Asunto.

Respuesta
1

Independientemente de lo anterior que me parece muy correcto, te doy otra posibilidad. Verás, si no le dices nada, cuando abres la base con la tecla SHIFT pulsada se "salta" todo el código, por tanto podrían cambiar las instrucciones. Entonces, sería conveniente que si tienes un formulario inicial, que se muestre al abrir la base, le pongas en el evento Al cargar

If environ("username")<>"Jose Muñoz" then

application.quit

end if

Estoy suponiendo que el nombre de usuario que tiene el ordenador es ese.

Cuando vayas a abrir la base, se abriría el formulario Inicio, pero cuando está cargando comprueba si el "nombre" del ordenador es ese. Si no lo es, se cierra. Y lo combinaría con anular la tecla SHIFT, que no te pongo nada porque hay miles de páginas que explican como hacerlo.

Ya sería casualidad que el que intentara piratearte la base se llamara igual que tú.

Ítem más, en vez de usar el usuario puedes usar el número de serie del ordenador. O convertirla en accde, que lo que hace es compilar el código, encriptarlo y no te deja entrar en el diseño de formularios, informes, módulos. En este caso es necesario que guardaras en tu ordenador la copia original en accdb.

Otra forma, anular la tecla SHIFT y ocultar todo el entorno de Access(combinado con lo anterior) y que muestre sólo lo que tu quieres que vea.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas