Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 19h27   #1
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 3
Points : 3
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 :
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
brg2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 19h54   #2
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 224
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 224
Points : 9 927
Points : 9 927
Envoyer un message via Skype™ à Domi2
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
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 22h29   #3
Invité de passage
 
Inscription : mai 2009
Messages : 18
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 18
Points : 3
Points : 3
Par défaut dbopendynaset

Bonsoir
ça ne marche pas. il me donne une erreur et pointe en jaune sur la ligne suivante :
Code :
Set dbBasedonnees = DBEngine.Workspaces(0).OpenDatabase(Base_Tables)
merci pour ton aide
brg2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 09h08   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 224
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 224
Points : 9 927
Points : 9 927
Envoyer un message via Skype™ à Domi2
Bonjour,

Et comme ceci :

Code :
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
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h00.


 
 
 
 
Partenaires

Hébergement Web