IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Définir la valeur d'un champ (mot de passe) en fonction d'une recherche de domaine [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut Définir la valeur d'un champ (mot de passe) en fonction d'une recherche de domaine
    Bonjour,

    Je ne sais pas comment écrire la syntaxe suivante pour définri la nouvelle valeur du mot de passe en lien avec la RechDom
    Le mot de passe actuel est stocké dans le champ : MotPass et dans la la table : utilisateur
    Nouveau mot de passe généré par un numéro aléatoire : NouvMotDePasse
    llogin de l'utilisateur connecté stocké dans : [TempVars]![USER]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function ModifMotPasse()
        'créé un numéro aléatoire
        NouvMotDePasse = Int(900000 * Rnd())
     
        'comment remplacer le mot de passe stocké dans le champs : [MotPass] ?
        'ne fonctionne pas :-(
        DLookup("[MotPass]", "utilisateur", "[NomComplet]=[TempVars]![USER]") = NouvMotDePasse
     
    End Function
    En vous remerciant pour votre aide

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    franckb74,

    une mise à jour ne s'obtient pas avec des fonctions de domaines, mais par une syntaxe sql de type update

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function ModifMotPasse()
        Dim NouvMotDePasse As Long
        NouvMotDePasse = Int(900000 * Rnd())
        CurrentDb.Execute "UPDATE utilisateur SET utilisateur.MotPass = " & NouvMotDePasse & " WHERE (((utilisateur.NomComplet)='" & Nz([TempVars]![User], "") & "'));"
     
    End Function
    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Super merci beaucoup !!!

    C'est un vrai plaisir de développer sous ACCESS j'en apprends à chaque fois un peu plus :-))

    Très bonne journée !
    Franck

  4. #4
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonjour jimbolion,

    J'ai ajouté à ce code la génération d'un mot de passe composé de lettre (Code) et de chiffre (valeur) et l'envoi par email du nouveau mot de passe à l'utilisateur concerné.
    Mais il y a une erreur lorsque j'arrive à la commande de mise à jour du mot de passe dans la table "utilisateur"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "UPDATE utilisateur SET utilisateur.MotPass = " & NouvMotDePasse & " WHERE (((utilisateur.NomComplet)='" & Nz([TempVars]![User], "") & "'));"
    J'ai placé un msgbox pour visualiser le nouv mot de passe

    Help !
    Merci à toi :-)


    Voici le code complet :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    'Envoi d'un message si demande de nouveau mot de passe
    Function EnvoiMotDePass()
        Dim n As Integer, CharCode As Byte, Code As String ' génération du mot de passe
        Dim NouvMotDePasse As String ' nouveau mot de passe
     
     
        Dim MonOutlook As Object
        Dim MonMessage As Object
        Set MonOutlook = CreateObject("Outlook.Application")
        Set MonMessage = MonOutlook.createitem(0)
     
        'Génération du nouveau mot de passe
        Randomize
        If codeSize < 2 Then codeSize = 6
        Do
          CharCode = Int((62 * Rnd) + 1)
          Code = Code & Chr(CharCode + IIf(CharCode < 11, 47, IIf(CharCode < 37, 54, 60)))
        Loop Until Len(Code) = codeSize
        GetUniqueId = Code
        valeur = Int(900000000000# * Rnd())
        NouvMotDePasse = Code & valeur
        MsgBox NouvMotDePasse
     
        ' Mise à jour du nouveau mot de passe dans la table
        CurrentDb.Execute "UPDATE utilisateur SET utilisateur.MotPass = " & NouvMotDePasse & " WHERE (((utilisateur.NomComplet)='" & Nz([TempVars]![User], "") & "'));"
     
        ' Envoi du nouveau mot de passe
        MonMessage.To = DLookup("[Email]", "utilisateur", "[NomComplet]=[TempVars]![USER]") ' adresse du demandeur
        MonMessage.Bcc = DLookup("[Email]", "utilisateur", "[AdminDeveloppeur]=-1") ' adresse de l'administrateur pour info copie cachée
        MonMessage.Subject = "Demande de réinitialisation Mot de Passe"
        MonMessage.body = "Le nouveau mot de passe est : " & NouvMotDePasse
     
        MonMessage.Display      ' la fonction .Display permet de visualiser l'email avant de l'envoyer
        'MonMessage.send        ' la fonction .send permet d'envoyer l'email directement sans ouvrir l'email
     
        ' On libère la mémoire :
        Set VARFichierLieHistorique = Nothing
        Set MonOutlook = Nothing
        Set MonMessage = Nothing
    End Function

  5. #5
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    franckb74,

    Quelle erreur la ligne te renvoit elle ?

    Si NouvMotDePasse est de type texte il te faut protéger ta variable dans la syntaxe :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "UPDATE utilisateur SET utilisateur.MotPass = '" & NouvMotDePasse & "' WHERE (((utilisateur.NomComplet)='" & Nz([TempVars]![User], "") & "'));"

    jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  6. #6
    Membre régulier
    Homme Profil pro
    Responsable qualité
    Inscrit en
    Mars 2012
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable qualité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 341
    Points : 111
    Points
    111
    Par défaut
    Bonsoir,

    C'était bien ça je te remercie !
    Ça fonctionne tip top :-))

    Merci,
    Franck

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Définir la valeur d'un champ combo
    Par ilalaina dans le forum WinDev
    Réponses: 1
    Dernier message: 24/09/2009, 10h48
  2. valeur d'un champ de sous form comme critere dans une requete
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/01/2008, 23h06
  3. [D7] Champs mot de passe
    Par HumanTool dans le forum Delphi
    Réponses: 5
    Dernier message: 16/05/2007, 17h47
  4. [HTML] Masquer champ mot de passe par des astérisques
    Par Jiraiya42 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/11/2006, 00h31
  5. Réponses: 10
    Dernier message: 16/04/2006, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo