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

IHM Discussion :

Identifier une modification dans un formulaire


Sujet :

IHM

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut Identifier une modification dans un formulaire
    Bonjour,

    en m'aidant de ce qu'il y a d'écrit dans la FAQ ici :

    http://access.developpez.com/faq/?pa...ctModifChpForm


    Je voudrais savoir comment faire pour identifier quel champ a été modifié.
    En effet, j'ai un formulaire créé à partir d'une table (je suis allé sur la table et j'ai fait formulaire instantané).
    Sur ce formulaire, je vais rajouter un bouton pour enregistrer les modifications, s'il y a en a.
    De ce fait, je voudrais savoir comment faire pour savoir quel champ a été modifié. De cette façon, je pourrais faire un UPDATE derrière sur les champs qui ont été modifiés, ça m'évitera de reprendre tout

    Quelqu'un sait comment faire ?

    Merci par avance pour votre aide

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Un début de piste trouvé dans l'aide Access :

    Code Aide 97 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub btnAnnuler_Click()
    	Dim ctlC As Control
    	' Pour chacun des contrôles.
    	For Each ctlC in Me.Controls
    		If ctlC.TypeContrôle = acTextBox Then
    			' Restaure l'ancienne valeur.
    			ctlC.Valeur = ctlC.OldValue
    		End If
    	Next ctlC
    End Sub

    Il te suffirait donc de tester OldValue et Value.

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ctlC.TypeContrôle = acTextBox Then
    il ne l'a connait pas chez moi

    Bon d'un autre coté j'en ai pas vraiment besoin, je n'ai que des zones de textes

    Mais je comprend pas trop comment tester value et OldValue. Il faut que je garde l'ancienne valeur dans une variable ? et la nouvelle dans un autre ?

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Foutue aide Access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ctl.ControlType = acTextBox
    OldValue stocke l'ancienne valeur du textbox.
    Il te reste donc à les comparer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If ctlC.Value <> ctlC.OldValue Then

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Ah non c'est bon ça marche

    j'ai écrit ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub CmdSave_Click()
    Dim clt As Control
    For Each clt In Me.Controls
        If clt.ControlType = acTextBox Then
            If clt.Value <> clt.OldValue Then
                MsgBox clt.Value '= clt.OldValue
                MsgBox clt.OldValue
            End If
        End If
    Next clt
    End Sub
    et ça marche pas mal

    Merci

    J'ai juste encore un petit soucis. Ça marche pas si j'ai un champ que je passe à vide.
    J'ai un champ en fait qui risque d'etre modifié, qui a une croix (un X quoi), et si l'utilisateur choisis de le modifier, il enlevera la croix et laissera le champ vide (l'inverse peut se produire aussi). A ce moment la, il ne voit pas que le champ a été modifié

    Je viens de vérifier, il ne remarque pas si le champ passe de vide à "X", et il ne vois pas l'inverse, cad si le champ passe de "X" à vide.

    Une idée de comment voir cette modification ?

    Merci pour ton aide en tout cas. Tu m'a sorti une sacré épine du pied déja

  6. #6
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Foutue aide Access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ctl.ControlType = acTextBox
    OldValue stocke l'ancienne valeur du textbox.
    Il te reste donc à les comparer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If ctlC.Value <> ctlC.OldValue Then

    Bah en fait c'est marrant, mais même le ControlType il ne connait pas enfin tu sais il est pas dans la liste, mais par contre il le reconnait..Très bizarre

  7. #7
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par illight Voir le message
    J'ai juste encore un petit soucis. Ça marche pas si j'ai un champ que je passe à vide.
    J'ai un champ en fait qui risque d'etre modifié, qui a une croix (un X quoi), et si l'utilisateur choisis de le modifier, il enlevera la croix et laissera le champ vide (l'inverse peut se produire aussi). A ce moment la, il ne voit pas que le champ a été modifié

    Je viens de vérifier, il ne remarque pas si le champ passe de vide à "X", et il ne vois pas l'inverse, cad si le champ passe de "X" à vide.

    Une idée de comment voir cette modification ?

    Merci pour ton aide en tout cas. Tu m'a sorti une sacré épine du pied déja
    Que vaut Value au moment de l'exécution du code lorsque ce champ est vide ?
    C'est quand même bizarre qu'il ne voit pas le changement.

  8. #8
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Dans mon formulaire, je me suis fait un bouton de test, qui a le code au dessus. Qaund je change un champ de la zone de texte par une valeur, il me met les 2 MSgbox avec l'ancienne et la nouvelle valeur ça c'est OK

    Quand je met un champ à vide, ou inversement que je met un champ vide à non vide, quand je clique sur le bouton...ben il se passe rien pas de msgbox rien du tout

    Oui je confirme, c'est très bizarre. J'aurai préféré qu'il m'affiche une msgbox vide

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/07/2014, 11h12
  2. [AC-2007] modification et mise à jour d'une date dans un formulaire
    Par lemautchisig dans le forum IHM
    Réponses: 1
    Dernier message: 01/03/2011, 11h52
  3. Réponses: 14
    Dernier message: 19/10/2006, 14h23
  4. Horodatage d'une modif dans un formulaire
    Par kluh dans le forum Access
    Réponses: 1
    Dernier message: 25/11/2005, 08h59
  5. Enregistrer une modification dans un formulaire
    Par micheline dans le forum Access
    Réponses: 5
    Dernier message: 26/06/2005, 19h13

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