Bonjour ,
J'ai une base de données (access 2016) sur laquelle je souhaite mettre une clé d'activation.
J'ai déjà un code vba qui permet de bloquer la BD à une heure définie et ça marche bien (j'ai utilisé un compteur d'heure). Pour la clé d'activation j'ai utilisé un code avec (Dlookup combiné avec une requête qui supprime les enregistrements dans les tables) pour l'idée que la même BD soit réactivée à chaque expiration d'heure par une clé sans l'a changer. Mais ce dernier ne marche pas, je souhaite vraiment votre aide pour que ça marche.
Voici le code:
Sous le formulaire Evaluation:
Sur le formulaire ActivationLicence:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Form_Load() If Me!Minutes > 0 Then MsgBox "Il vous reste " & 135 - Me!Heures & Space(1) & " " & "heures" & _ " " & " d 'utilisation.", vbInformation, "Information" DoCmd.OpenForm "FormConnexion", acNormal Else MsgBox "La période d'utilisation de cette" & _ Chr(13) & "application est de 135 heures.", vbInformation, "Information" DoCmd.OpenForm "FormConnexion", acNormal End If End Sub Private Sub Form_Timer() Me![Secondes] = Me![Secondes] + 1 Me![Minutes] = Int(Me![Secondes] / 60) Me![Heures] = Int(Me![Minutes] / 60) DoCmd.Save acForm, Me.Name If Me![Heures] >= 135 Then MsgBox "La période d'utilisation est expirée." & _ Chr(13) & "Veuillez contacter au 0000000 ou <a href="mailto:abc@gmail.com">abc@gmail.com</a>" & _ Chr(13) & "pour une éventuelle mise en marche.", vbCritical, "Information" DoCmd.Close acForm, Me.Name DoCmd.Close acForm, "FormConnexion", acNormal DoCmd.OpenForm "ActivationLicence", acNormal End If End Sub
J'ai créé deux tables:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Dim controlkey As String Private Sub bt_activer_Click() If IsNull(DLookup("keyactivation", "registre_key", "keyactivation='" & txt_keyactivation & "'")) Then 'Qui verifie si le textbox est vide ou si la clé saisie existe dans la table registre_key 'MsgBox "La clé que vous avez entré(e) n'est pas valide ou a été déjà utilisée. Veuillez entrer une clé valide ou contactez au 0000000 ou <a href="mailto:abc@gmail.com">abc@gmail.com</a>", vbInformation, "Données manquantes" txt_keyactivation = Clear txt_keyactivation.SetFocus Exit Sub End If controlkey = DLookup("keyactivation", "registre_key", "keyactivation='" & txt_keyactivation & "'") If controlkey = " & txt_keyactivation & " Then CurrentDb.Execute "DELETE * FROM [Evaluation];" 'Qui supprime les enregistrements dans table Evaluation CurrentDb.Execute "DELETE keyactivation FROM [registre_key] where keyactivation=[" & txt_keyactivation & "];" 'qui supprime la meme clé saisie par user dans la table registre_key DoCmd.Close acForm, Me.Name DoCmd.OpenForm "Evaluation", acNormal 'Qui ouvre ce formulaire pourque le compteur recommence DoCmd.OpenForm "menuprincipalmokoaccdb", acNormal Else MsgBox "La clé que vous avez entré(e) n'est pas valide ou a été déjà utilisée. Veuillez entrer une clé valide ou contactez au 0000000 ou <a href="mailto:abc@gmail.com">abc@gmail.com</a>", vbInformation, "Données manquantes" txt_keyactivation = Clear txt_keyactivation.SetFocus End If End Sub
-Évaluation(Secondes[numérique], Minutes [numérique], Heures[numérique]).
-Registre_key(keyactivation[Texte cours]) dans laquelle les clés seront insérées manuellement.
Puis j'ai créé deux formulaires :
-Evaluation créé à travers la table Evaluation et affecté comme celui de démarrage.
-ActivationLicence créé avec un textbox nommé txt_keyactivation et un bouton activer.
Partager