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 :

Modifier des enregistrements sur une base dorsale


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Modifier des enregistrements sur une base dorsale
    Bonjour,
    J'ai créer le code suivant pour permettre aux employés de changer leur mot de passe :

    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
    41
    42
    43
    Private Sub OK_Bouton_Click()
    Dim dbBasedonnees As Database
    Dim Employéstab As Recordset2
    Dim Utilisateur As Long
    Dim Titre As String
    Dim Msg As String
    Dim Reponse As Integer
    'Verifier si le mot de passe saisi est celui effectivement enregistre pour cet employé
     
    Utilisateur = GetCurrentUserID()
    Titre = "Changement de Mot de Passe"
    Msg = " Votre Mot de passe a été changé avec succès"
        If Me.old_password.Value = DLookup("Mot_Passe", "Employés", "[ID_Employé]=" & IDUtilisateurActuel) Then
            ' si le mot de passe saisi est correct il faut verifier que le nouveau mot de passe et la confirmation sont identiques
            If Not IsNull(Me.New_password.Value) And (Me.New_password.Value = Me.Confirmation_password.Value) Then
                MsgBox Me.old_password.Value
                Set dbBasedonnees = DBEngine.Workspaces(0).OpenDatabase(Base_Tables)
                Set Employéstab = dbBasedonnees.OpenRecordset("Employés", dbOpenTable)
     
                Employéstab.Index = "PrimaryKey"
                Employéstab.Seek "=", Utilisateur
     
                Employéstab.Edit
                Employéstab![Mot_Passe] = Me.New_password.Value
                Employéstab.Update
                Employéstab.Close
                dbBasedonnees.Close
     
                'Close logon form and open splash screen
                MsgBox " Votre Mot de passe a été changé avec succès"
               ' Reponse = MsgBox(msg, vbInformation, Titre, "", "")
                DoCmd.Close acForm, "Changement Mot de passe", acSaveNo
     
     
            Else
            MsgBox " Le mot de passe est la confirmation doivent être identiques"
     
            End If
        Else
        MsgBox " le mot de passe courant est erroné"
        End If
     
    End Sub
    Au départ, la base de données était unique et le code fonctionnait parfaitement. Une fois la base de données scindée en une base frontale et une autre dorsale contenant les tables, le code ne fonctionne plus et me donne une erreur.

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonsoir,

    Remplace Set Employéstab = dbBasedonnees.OpenRecordset("Employés", dbOpenTable) par Set Employéstab = dbBasedonnees.OpenRecordset("Employés", dbOpenDynaset).

    Tu as l'explication dans l'aide.

    Domi2

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 15
    Points
    15
    Par défaut dbopendynaset
    Bonsoir
    ça ne marche pas. il me donne une erreur et pointe en jaune sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set dbBasedonnees = DBEngine.Workspaces(0).OpenDatabase(Base_Tables)
    merci pour ton aide

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Et comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim dbBasedonnees As DAO.Database
    Dim Employéstab As DAO.Recordset
     
    Set dbBasedonnees = CurrentDb
    Set Employéstab = dbBasedonnees.OpenRecordset("Employés", dbOpenDynaset)
    Domi2

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/08/2009, 18h00
  2. Gestion internet des enregistrements d'une base sur un serveur
    Par Monbasinstinct dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/07/2007, 00h28
  3. Réponses: 4
    Dernier message: 27/09/2006, 21h49
  4. [Débutant] Modifier des données dans une base
    Par Amallric dans le forum Débuter
    Réponses: 2
    Dernier message: 12/06/2006, 08h51
  5. [MySQL] Modifier des données dans une base de donnée
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/01/2006, 09h56

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