Access - Limitar numero de ejecuciones

 
Vista:
Imágen de perfil de David
Val: 7
Ha disminuido su posición en 7 puestos en Access (en relación al último mes)
Gráfica de Access

Limitar numero de ejecuciones

Publicado por David (9 intervenciones) el 18/07/2004 19:14:41
Hola,

me gustaria saber como podria limitar el numero de ejecuciones de un .MDE o de una MDB.

Muchas Gracias y un Saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Limitar numero de ejecuciones

Publicado por Alejandro (4142 intervenciones) el 09/05/2023 00:53:49
Para limitar el número de ejecuciones de un archivo de base de datos de Access (.MDE o .MDB), puedes utilizar una técnica conocida como "licencia de tiempo de ejecución". Aquí te proporciono un ejemplo de cómo implementar esta funcionalidad:

1. Crea una tabla en tu base de datos para almacenar la información de la licencia. Por ejemplo, puedes llamar a esta tabla "Licencia" y tener los siguientes campos:
- ID (campo autonumérico para identificar cada registro de licencia)
- FechaInicio (fecha/hora, para registrar la fecha de inicio de la licencia)
- NumeroEjecuciones (número, para contar el número de ejecuciones realizadas)
- LimiteEjecuciones (número, para establecer el límite de ejecuciones permitidas)

2. En el evento OnOpen del formulario de inicio de tu base de datos (o cualquier otro formulario que se ejecute al abrir la base de datos), agrega el código necesario para controlar el número de ejecuciones y verificar si se ha alcanzado el límite. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Private Sub Form_Load()
    ' Verificar si se ha alcanzado el límite de ejecuciones
    If GetNumeroEjecuciones() >= GetLimiteEjecuciones() Then
        MsgBox "El número máximo de ejecuciones ha sido alcanzado. La aplicación se cerrará.", vbCritical
        Application.Quit
    Else
        ' Incrementar el contador de ejecuciones
        IncrementarNumeroEjecuciones
    End If
End Sub
 
' Función para obtener el número de ejecuciones actual
Private Function GetNumeroEjecuciones() As Long
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT NumeroEjecuciones FROM Licencia WHERE ID = 1")
 
    If Not rs.EOF Then
        GetNumeroEjecuciones = rs("NumeroEjecuciones")
    End If
 
    rs.Close
    Set rs = Nothing
End Function
 
' Función para obtener el límite de ejecuciones permitidas
Private Function GetLimiteEjecuciones() As Long
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT LimiteEjecuciones FROM Licencia WHERE ID = 1")
 
    If Not rs.EOF Then
        GetLimiteEjecuciones = rs("LimiteEjecuciones")
    End If
 
    rs.Close
    Set rs = Nothing
End Function
 
' Subrutina para incrementar el contador de ejecuciones
Private Sub IncrementarNumeroEjecuciones()
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT NumeroEjecuciones FROM Licencia WHERE ID = 1", dbOpenDynaset, dbSeeChanges)
 
    If Not rs.EOF Then
        rs.Edit
        rs("NumeroEjecuciones") = rs("NumeroEjecuciones") + 1
        rs.Update
    End If
 
    rs.Close
    Set rs = Nothing
End Sub

En este ejemplo, la función `GetNumeroEjecuciones()` obtiene el número actual de ejecuciones, la función `GetLimiteEjecuciones()` obtiene el límite de ejecuciones permitidas y la subrutina `IncrementarNumeroEjecuciones()` incrementa el contador de ejecuciones en 1 cada vez que se inicia la base de datos.

Al abrir la base de datos, el código verifica si se ha alcanzado el límite de ejecuciones. Si es así, se muestra un mensaje y se cierra la aplicación. Si no se ha alcanzado el límite de ejecuciones, se incrementa el contador de ejecuciones y la aplicación continúa su funcionamiento normal.

Recuerda que este ejemplo asume que tienes una tabla llamada "Licencia" con los campos mencionados anteriormente. Además, debes asegurarte de establecer correctamente el límite de ejecuciones en la base de datos.

Es importante destacar que esta técnica de limitar el número de ejecuciones se basa en un control interno dentro de la base de datos y no ofrece una protección total contra el acceso no autorizado. Si deseas una protección más robusta, te recomendaría investigar sobre otras soluciones más avanzadas, como la generación de licencias personalizadas o el uso de herramientas de protección de software.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar