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 :

Sécuriser la modification des données


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut Sécuriser la modification des données
    Bonjour à tous et à toutes,

    J'ai réaliser un formulaire sur access pour faire plus aisementla mise à jour de mes données. L'application tourne bien mais voilà je trouve que ca manque un peu de sécurité; en effet il est possible de changer les données puis de passer à un autre enrégistrement sans que le système ne nous demande de confirmer cette modification ou non.

    Ce que je voudrais faire maintenant, c'est à chaque fois qu#une modification est faite sur un enrégistrement, avant que l'utilisateur ne passe à un autre enrégistrement ou ne ferme la fenetre en cours, qu'une procédure se lance dans laquelle un msgbox me demande si oui ou non je souhaite confirmer cette modification.

    quelqu'un pourrait me dire la marche à suivre ou me dirigé vers tuto ou encore une discussion similaire? Ce serais vraiment cool

    merci à tous

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 73
    Par défaut
    bonjour
    pour ma part je gere ce genre de probleme en créant un evenement sur chaque controle (prealablement verrouillé) qui se déclenche sur clic et demande la confirmation avant de changer la valeur, mais c'est un peu lourd lorsque tu dois changer plusieurs controles de ton formulaire

  3. #3
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    je ne comprend pas très bien cette méthode. Si le control est vérouillé d`s le départ c'est qu'en principe la donnée qu'elle affiche (Dans le cas d'un text box) ne peut etre modifiée. Comment arrive tu donc à faire la modification?

  4. #4
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    j'ai trouvé une piste mais je suis confronté à nouveau à un mur.
    Voilà, au niveau du formulaire il existe l'évenement "si modification" dans lequel j'y ai mis le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private sub Form_Dirty (Cancel as Integer)
    MsgBox " Voulez vous vraiment modifier cet enrégistrement?, "" & vbCr & vbCr &", vbInformation + vbYesNo, "Confirmation"
    End Sub
    la procédure se déclenche à la premiere modification mais ne prend pas en compte le fait que je click sur "oui" ou sur "non", à savoir valider ou non la modification.

    Qu#es ce qu'il faut que je fasse pour ca?

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 128
    Par défaut
    Bonjour,

    Si tu ne joue pas avec la variable Cancel ce code ne fait qu'afficher le message.

    ACCESS ne comporte pas de moteur extra-lucide !

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    Qu'es ce que tu veux dire par là au juste? Excuse moi mais j'ai du mal á saisir ce que tu me dit. cela signifierait t-il que pour que les bouton yes et no fonctionne il faudrait que j'utilise ce code ci dessous?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private sub Form_Dirty (Cancel as Integer)
    MsgBox " Voulez vous vraiment modifier cet enrégistrement?, "" & vbCr & vbCr &", vbInformation + vbYesNoCancel, "Confirmation"
    End Sub

  7. #7
    Membre éprouvé
    Profil pro
    Développeur
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    salut overdoze,

    il faut faire un test pour agir en fonction de la reponse du msgbox, ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    reponse=MsgBox(" Voulez vous vraiment modifier cet enrégistrement?, "" & vbCr & vbCr &", vbInformation + vbYesNo, "Confirmation")
     
    if reponse = vbyes then
        'ton code de modif
    elseif reponse = vbno then
        'pas de modif
    endif
     
    End Sub
    salut

  8. #8
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    merci infiniment ludoooo je vais completer ce code et voir si c ok

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 128
    Par défaut
    On peut également faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if msgbox("mon message",vbInformation + vbYesNo,"mon titre") then
      cancel = false
    else
      cancel = true
    endif
    En tout cas sans le traitement du cancel le code ne fera toujours qu'afficher le message.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre habitué
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    10
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 10
    Par défaut
    Déjà pour répondre au dernier message, cancel est déclaré comme étant integer de ce fait il ne peut prendre les valeurs true et false (Enfin selon moi).
    De plus j'ai essayer d'implémenter mais ca n'a rien changer au résultat.

    En suivant la méthode de Ludoooo J'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Reponse As Integer
    Reponse = MsgBox("Voulez vous réellement modifier l'enregistrement courant?", vbYesNo + vbExclamation, "Confirmation")
    If Reponse = vbYes Then
        TYPE.Text = Choose
    End If
    End Sub
    Ici type c'est le nom du controle où l'on change la donnée. C'est un combobox dans lequel est listé les différents éléments acceptable. Mais voilà le compilateur m'affiche ce message "Erreur de compilation" "Erreur de syntaxe" au niveau de cette ligne

    Quelqu'un peut -il me dire pourquoi?

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 128
    Par défaut
    Citation Envoyé par overdoze Voir le message
    Déjà pour répondre au dernier message, cancel est déclaré comme étant integer de ce fait il ne peut prendre les valeurs true et false (Enfin selon moi).
    Entre ACCESS et toi je choisi ACCESS...
    Pour t'en convaincre tu peux toujours tester le type de True et False, ce sera une perte de temps bien inutile.


    De plus j'ai essayer d'implémenter mais ca n'a rien changer au résultat.
    Si modification est différent de Avant Mise à Jour, dans ton cas il faut utiliser le 2ème. Pour t'en convaincre regarde l'application Chasseur d'événement, tu comprendra le méchanisme des événements et surtout l'ordre de leur déclenchement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Reponse As Integer
    Reponse = MsgBox("Voulez vous réellement modifier l'enregistrement courant?", vbYesNo + vbExclamation, "Confirmation")
    If Reponse = vbYes Then
        TYPE.Text = Choose
    End If
    End Sub
    Quelqu'un peut -il me dire pourquoi?
    .text est le contenu temporaire (avant validation) Type est un champ.
    Pour y faire référence il faut que le champ soit actif, ce n'est visiblement pas toujours le cas (là n'est pas le problème... pour l'instant).

    Qui est choose si ce n'est un mot réservé (fonction Choose()) ? Là est le problème.

    Si tu utilise des mots réservés, je pense qu'ACCESS ne sera pas ton ami.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Membre éprouvé
    Profil pro
    Développeur
    Inscrit en
    Août 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2006
    Messages : 94
    Par défaut
    re- overdoze,

    avant de te rediriger vers un tutoriel ou te donner d'autres explications, je te propose de baptiser la touche F1 de ton clavier
    va voir dans l'aide la syntaxe de "Choose", et on en rediscute si je peux t'aider...

    a+

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

Discussions similaires

  1. [JTable] Interdire la modification des données ?
    Par Cyborg289 dans le forum Composants
    Réponses: 7
    Dernier message: 25/02/2013, 10h40
  2. [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
  3. Réponses: 2
    Dernier message: 21/03/2006, 15h22
  4. Modification des données impossible
    Par Virgile59 dans le forum Access
    Réponses: 8
    Dernier message: 03/03/2006, 14h41
  5. Réponses: 6
    Dernier message: 15/02/2006, 14h02

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