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

Sécurité Discussion :

Empécher une auto modification des données d'une liste modifiable


Sujet :

Sécurité

  1. #1
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut Empécher une auto modification des données d'une liste modifiable
    Bonjour, je sais que l'intitulé n'est pas très clair mais il est difficile d'expliquer mon problème en quelques mots Je vais essayer d'être clair, bref, et précis ...
    Voilà j'ai deux formulaires, un formulaire index (qui permet de choisir un produit par liste modifiable) et un formulaire produit (qui correspond au produit que l'on a sélectionné).
    Tout fonctionne bien, sauf (bah oui sinon je serai pas là ) que lorsque j'ai choisi un produit quelconque, que j'accède à ma fiche, puis que je ferme ma fiche (donc retour à l'index), la première valeur de ma liste modifiable se modifie automatiquement (?). En plus précis, pour le produit 1 qui se nomme Aaa, lorsque je sélectionne et regarde par exemple le produit 3 qui s'appelle Ccc et que je reviens à mon index, le produit 1 se nomme Ccc ...
    Si vous pouviez m'éclairer sur une quelconque solution, cela m'aiderait beaucoup!!!
    Merci

    EDIT :

    J'ai bien essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub MaListeModifiable_BeforeUpdate(Cancel As Integer)
        Cancel = True
    End Sub
    proposé dans la FAQ mais cela me "bloque" mes boutons (impossible de pouvoir cliquer dessus)
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  2. #2
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Je relance le post sans grande espérance ...
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  3. #3
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Il y a peut-être plus simple, mais en général ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (dans l'entête du module) Dim OldValue as Variant
     
    Private Sub MaListeModifiable_GotFocus
        OldValue = MaListeModifiable
    End Sub
     
    Private Sub MaListeModifiable_AfterUpdate
        MaListeModifiable = OldValue
    End Sub

  4. #4
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Merci de ton intérêt pour mon sujet.
    J'ai essayé et cela ne marche pas, mais j'ai un petit soucis avec ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Compare Database
     
     
    Dim OldValue As Variant
    _____________________________________________________
    Private Sub MaListeModifiable_GotFocus()
        OldValue = Modifiable12
    End Sub
    _____________________________________________________
    Private Sub MaListeModifiable_AfterUpdate()
        Modifiable12 = OldValue
    End Sub
    Dim OldValue As Variant se met toujours au dessus et pas dans Private Sub MaListeModifiable_GotFocus()
    OldValue = Modifiable12
    End Sub
    ...

    Si tu as une autre solution à me proposer je suis tout ouïe
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  5. #5
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Je suppose que le nom de ton contrôle est MaListeModifiable.
    L'idée est d'enregistrer dans une variable la valeur de MaListeModifiable au moment où l'utilisateur arrive dessus (événement 'on got focus' – je ne connais pas la traduction française, peut-être 'à l'entrée'?), et de restaurer cette valeur si on essaie de modifier MaListeModifiable (événement 'after update' – 'après MAJ').

    Il faut donc garder : OldValue = MaListeModifiable
    ou mieux : OldValue = Me.MaListeModifiable
    Si tu renommes en Modifiable12 c'est normal que ça ne marche plus...

    D'autre part, je ne sais pas comment tu t'y es pris pour copier-coller mon code, mais la bonne méthode est celle-ci :
    Ouvre les propriétés de MaListeModifiable. Sous l'onglet Evénements, en face de 'Après MAJ', clique sur les points de suspension, et choisis Code Builder. La fonction est créée, tu n'as plus qu'à coller son contenu. Idem pour l'autre procédure. Il faut qu'à la fin en face des deux événements il y ait écrit [Event Procedure], sinon ça veut dire qu'Access n'a pas remarqué que tu avais ajouté une nouvelle procédure.
    Pour 'Dim OldValue As Variant' par contre il faut l'ajouter manuellement, comme tu as fait c'est bien.

  6. #6
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    J'ai trop fait le boulet hier a renommé que la moitié des choses ... désolé
    Mais bon j'ai eu des précisions donc bon
    Je teste ca tout de suite et je vous dis
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  7. #7
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Bon alors bonne nouvelle ça fonctionne, désolé de ma bêtise d'hier ...
    Mauvaise nouvelle impossible de pouvoir sélectionner un produit dans ma liste ... ma liste se déroule, mes options apparaissent mais impossible de pouvoir en sélectionner un
    Je me penche mais je guette si vous avez une solution. Merci Meduse
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  8. #8
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    Je vois... Comment fais-tu pour ouvrir la fiche produit: est-ce un bouton à part ou est-ce qu'elle s'ouvre dès que tu sélectionnes un produit dans la liste ?

  9. #9
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    J'utilise un bouton à part
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  10. #10
    Membre régulier

    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 119
    Points
    119
    Par défaut
    En fait, je crois qu'on peut garder le principe de la variable OldValue, mais qu'il faut utiliser d'autres événements (ouverture et fermeture du formulaire produit par exemple).

    J'aimerais comprendre comment fonctionne ton formulaire index :
    Comment fais-tu pour sélectionner le produit que tu veux voir ? Peut-il être différent de celui sélectionné dans la liste déroulante ?

    Envoie une copie d'écran si ça peut aider.

  11. #11
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Je sélectionne mon produit dans ma liste modifiable "Produit à modifier", code_produit est invisible et ce champ s'appelle codage, et sur mon bouton "Accéder au produit" j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Acceder_Click()
        DoCmd.OpenForm "produit_form", , , "code_produit =" & Me.codage
    End Sub
    P.S. : Bon appétit (je reviens à 14h)


    EDIT : j'ai oublié la pièce jointe
    Images attachées Images attachées  
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  12. #12
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Nouvel évènement, je peux sélectionner un produit mais en fait il est de suite remplacer par le premier

    EDIT :

    En fait, depuis ton code Meduse, c'est pas que je pouvais pas sélectionner mais ça se rafraichissait trop vite ...
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

  13. #13
    Membre habitué Avatar de 1tsiMat
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Points : 127
    Points
    127
    Par défaut
    Problème réglé, j'ai enlevé le code d'after update et j'ai mis comme code sur mon bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Acceder_Click()
        DoCmd.OpenForm "produit_form", , , "code_produit =" & Me.codage
        Modifiable12 = OldValue
    End Sub
    Merci Meduse, sans toi je n'aurais pu y arriver!!!!!!! Tu as ma reconnaissance éternelle!!!!
    N'oubliez pas, si votre problème est résolu, mettez le tag
    En informatique, il n'y a pas de problème, toujours des solutions (parfois pas évidentes à trouver )

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/01/2008, 09h08
  2. Modification des données dans une CListCtrl
    Par Sachiel31 dans le forum MFC
    Réponses: 2
    Dernier message: 05/09/2006, 17h49
  3. Réponses: 11
    Dernier message: 25/07/2006, 21h46
  4. [MySQL] Modification des données d'une base par les membres
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/03/2006, 17h25
  5. Réponses: 2
    Dernier message: 21/03/2006, 15h22

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