Clé d'activation - Forum Access

Clé d'activation Clé d'activation windows 10 Pro [Résolu] (Résolu) » Forum - Windows Trouvé la clé d'activation microsoft word (Résolu) » Forum - Word Clé d'activation Windows 7 [Résolu] (Résolu) » Forum - Système Installer clé d'activation Office 365 family pack » Forum - Logiciels Clé avast 2018 gratuit » Forum - Antivirus

Bonjour , j'ai une base de donnée (access 2016) que je souhaite mettre une clé d'activation sur dessus. J'ai déjà un code vba qui permet de bloquer la BD à une heure définie et ça marche well (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 meme BD soit réactivée à chaque expiration d'heure par une clé sans l'a changée. Mais ce dernier ne marche pas, je souhaite vraiment votre aide pour que ça marche.
Voici le code:
Sous le formulaire Evaluation:



 Private [/contents/446-fichier-sub 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 [email protected]" & _ 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 

Suis le formulaire ActivationLicence:
 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 [email protected]", 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 [email protected]", vbInformation, "Données manquantes" txt_keyactivation = Clear txt_keyactivation.SetFocus End If End Sub 


J'ai crée deux tables:
-É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éé a travers la table Evaluation et affecté comme celui de démarrage.
-ActivationLicence créé avec un textbox nommé txt_keyactivation et un bouton activer.

Forum

Clé d'activation Clé d'activation windows 10 Pro [Résolu] (Résolu) » Forum - Windows Trouvé la clé d'activation microsoft word (Résolu) » Forum - Word Clé d'activation Windows 7 [Résolu] (Résolu) » Forum - Système Installer clé d'activation Office 365 family pack » Forum - Logiciels Clé avast 2018 gratuit » Forum - Antivirus

Web: www.shapebootstrap.net

19 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour, "ne marche pas": message d'erreur?

Merci yg_be 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 26696 internautes ce mois-ci

Reply
réponses:
  • Fadialama

    Non, meme si j'insère une clé dans le textbox(txt_keyactivation) qui est déjà enregistrée dans la table registre_key et qui devrait activer normalement la bd ne prend pas, ça renvoi le message :

    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 [email protected]", vbInformation, "Données manquantes" txt_keyactivation = Clear txt_keyactivation.SetFocus Exit Sub End if

    Et l'idée est que ce message se déclenche si et seulement si la clé n'existe pas dans la table "registre_key".

  • yg_be

    avant toute chose: as-tu "option explicit" en début de module? si non, merci de l'ajouter, et de tester à nouveau.
    ensuite: ajoute txt_keyactivation dans le texte publié par la msgbox, cela te permettra de vérifier si la valeur est bien passée.

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

ne serait-ce pas plutôt avec ceci que tu as un soucis?
controlkey = DLookup("keyactivation", "registre_key", "keyactivation='" & txt_keyactivation & "'") If controlkey = " & txt_keyactivation & " Then

le IF me semble inutile, et, de plus, ne fait probablement pas ce que tu imagines.

Merci yg_be 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 26696 internautes ce mois-ci

Reply
réponses:
  • auteur

  • Fadialama

    Peut être, en faite je suis pas trop bien en vba, j'ai fait une analyse d'un code qui m'a permit de mettre une fenêtre d'authentification à ma BD et je me suis référé de ça pour voir si ça allait marché.
    Voici ce code:

     Private Sub Bt_Ok_Click() If IsNull(DLookup("Login", "Utilisateur", "Login='" & txt_Login & "'")) Then MsgBox "Votre nom d'utilisateur est incorrect", vbInformation, "verification login" txt_Login = Clear txt_Login.SetFocus Exit Sub End If If IsNull(DLookup("IdUser", "Utilisateur", "MotdPasse='" & Txt_Passwd & "'")) Then MsgBox "Votre mot de passe incorrect", vbInformation, "verification mot de passe" Txt_Passwd = Clear Txt_Passwd.SetFocus Exit Sub End If typeuser = DLookup("type", "Utilisateur", "Login='" & txt_Login & "'") If typeuser = "Admin" Then DoCmd.OpenForm "menuprincipalmokoaccdb", acNormal DoCmd.Close acForm, Me.Name Else DoCmd.Close acForm, Me.Name DoCmd.OpenForm "Menuprincipal", acNormal Forms![Menuprincipal]!bt_ListeAdmin.Enabled = False End If End Sub 

    Avec ça j'ai aussi une table qui contient des données et ça marche.

  • yg_be

    il vaut mieux vérifier en même temps le login et le mot de passe. il est préférable de ne pas indiquer à l'utilisateur si c'est le login ou si c'est le mot de passe qui est incorrect, sinon cela l'aide à tricher. de plus, comme tu fais, tu ne vérifies pas que le mot de passe correspond au login.
    donc, suggestion:
    au lieu de

     If IsNull(DLookup("Login", "Utilisateur", "Login='" & txt_Login & "'")) Then MsgBox "Votre nom d'utilisateur est incorrect", vbInformation, "verification login" txt_Login = Clear txt_Login.SetFocus Exit Sub End If If IsNull(DLookup("IdUser", "Utilisateur", "MotdPasse='" & Txt_Passwd & "'")) Then MsgBox "Votre mot de passe incorrect", vbInformation, "verification mot de passe" Txt_Passwd = Clear Txt_Passwd.SetFocus Exit Sub End If

    faire plutôt:
    If IsNull(DLookup("Login", "Utilisateur", "Login='" & txt_Login & "'" _        & " and MotdPasse='" & Txt_Passwd & "'")) Then MsgBox "Votre nom d'utilisateur ou votre mot de passe est incorrect", vbInformation, "verification login" txt_Login = Clear Txt_Passwd = Clear txt_Login.SetFocus Exit Sub End If 

  • Fadialama

    Ok, mais pour la clé d'activation j'ai ajouté "option explicit" mais ça ne marche pas toujours.

  • yg_be

    as-tu fais quelque-chose suite à mes suggestions en #3 et en #4?
    peux-tu montrer le code adapté?

  • Fadialama

    Je viens d'utiliser ce code mais qui renvoi aussi une erreur '94' d'utilisation incorrect d' Isnull

    Option Compare Database Dim controlkey As String  Private Sub bt_activer_Click() If IsNull(txt_keyactivation) Or txt_keyactivation.Value = "" Then MsgBox "Colonne vide, entrer une clé valide sinon, contactez au 0000000 ou [email protected]", vbInformation, "Information" txt_keyactivation = Clear txt_keyactivation.SetFocus Exit Sub End If controlkey = DLookup("keyactivation", "registre_key", "keyactivation='" & txt_keyactivation & "'") If controlkey = Me.txt_keyactivation.Value Then CurrentDb.Execute "DELETE * FROM [Evaluation];" CurrentDb.Execute "DELETE keyactivation FROM [registre_key] where keyactivation=[" & txt_keyactivation & "];" DoCmd.Close acForm, Me.Name DoCmd.OpenForm "Evaluation", acNormal DoCmd.OpenForm "menuprincipal", 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 [email protected]", vbInformation, "Information" txt_keyactivation = Clear txt_keyactivation.SetFocus End If End Sub

  • yg_be

    as-tu ajouté "option explicit" au début du module du formulaire?

  • Fadialama

    Je me demande si ce que je veux est possible avec ce code ci dessous ?

  • Fadialama

    Oui j'ai ajouté mais ça marche pas.

  • yg_be

    as-tu un message d'erreur? montre ton code adapté avec "option explicit".

  • Fadialama

    Le voici :

    Option Compare Database option explicit  Dim controlkey As String  Private Sub bt_activer_Click() If IsNull(txt_keyactivation) Or txt_keyactivation.Value = "" Then MsgBox "Colonne vide, entrer une clé valide sinon, contactez au 0000000 ou [email protected]", vbInformation, "Information" txt_keyactivation = Clear txt_keyactivation.SetFocus Exit Sub End If controlkey = DLookup("keyactivation", "registre_key", "keyactivation='" & txt_keyactivation & "'") If controlkey = Me.txt_keyactivation.Value Then CurrentDb.Execute "DELETE * FROM [Evaluation];" CurrentDb.Execute "DELETE keyactivation FROM [registre_key] where keyactivation=[" & txt_keyactivation & "];" DoCmd.Close acForm, Me.Name DoCmd.OpenForm "Evaluation", acNormal DoCmd.OpenForm "menuprincipal", 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 [email protected]", vbInformation, "Information" txt_keyactivation = Clear txt_keyactivation.SetFocus End If End Sub 

  • yg_be

    as-tu compilé le code après avoir ajouté "option explicit"? j'ai l'impression que tu ne l'as ni compilé, ni exécuté.

  • Fadialama

    Oui bien sur je l'ai fait et ça signal ce code comme erreur.

    txt_keyactivation = Clear 

  • yg_be

    il faut corriger chaque erreur.

  • Fadialama

    J'utilise access 2016...

  • Fadialama

    Ok

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed