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

Access Discussion :

Créer un bouton "Modifier" sur un formulaire


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2017
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Créer un bouton "Modifier" sur un formulaire
    Bonjour,

    Au bout de mes capacités mais pas au bout de mes idées, je suis lassé de régulièrement effacer le premier champ des formulaires que j’utilise.
    J'ai donc mis le paramètre "Modif autorisé" sur "Non" mais du coup, je ne peu même plus sélectionner rechercher une fiche par une recherche déroulante.
    Mes questions :
    - Comment faire pour pour ne pas pouvoir accidentellement modifier une fiche tout en ayant la capacité d'utiliser la recherche par type de fiche?
    - Comment programmer un bouton "Modifier cette fiche" qui me permettrais de ne modifier que la fiche affichée?

    Formulaire.pdf
    Merci de votre aide et pardonnez moi pour mes limites...

    Jean-Pierre

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    J'imagine que ta recherche est dans l'entête de ton formulaire via un contrôle indépendant.
    Si tu ne veux pas faire compliqué le plus simple est de verrouiller chacun des champs de données SAUF ceux de l'entête
    Après tu peux faire un bouton "Modifier" qui va déverrouiller tes champs de données.
    Pense à les reverrouiller à chaque "Activation" (évènement Sur Activation) pour qu'il se reverouille à chaque changement d'enregistrement.

    Ici un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private sub  GerrerVerrou(prmEstVerrouille as boolean)
       me.TonChamp1.locked=prmEstVerrouille 
       me.TonChamp2.locked=prmEstVerrouille 
       me.TonChamp3.locked=prmEstVerrouille 
       me.TonChamp4.locked=prmEstVerrouille 
    end sub
    dans la procédure événementielle de Sur Activation:

    dans la procédure événementielle de Sur Click du bouton Modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call GererVerrou(false)
    A+

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonsoir,

    c'est une idée qui m’intéresse aussi, j'ai testé et ca marche tres bien, il faut juste faire attention au "r" de Verrou et Verrouille.

    Cordialement.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2017
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    J'imagine que ta recherche est dans l'entête de ton formulaire via un contrôle indépendant.
    Si tu ne veux pas faire compliqué le plus simple est de verrouiller chacun des champs de données SAUF ceux de l'entête
    Après tu peux faire un bouton "Modifier" qui va déverrouiller tes champs de données.
    Pense à les reverrouiller à chaque "Activation" (évènement Sur Activation) pour qu'il se reverouille à chaque changement d'enregistrement.

    Ici un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private sub  GerrerVerrou(prmEstVerrouille as boolean)
       me.TonChamp1.locked=prmEstVerouille
       me.TonChamp2.locked=prmEstVerouille
       me.TonChamp3.locked=prmEstVerouille
       me.TonChamp4.locked=prmEstVerouille
    end sub
    dans la procédure événementielle de Sur Activation:

    dans la procédure événementielle de Sur Click du bouton Modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call GererVerrou(false)
    A+
    Super ! je te remercie cela fonctionne et c'est génial!!
    Du coup, les caprices de l'esprit... je souhaiterais qu'en cliquant sur le bouton "Ajouter un enregistrement" (que j'ai crée avec une macro) cela me permette aussi de déverrouiller l'ensemble des champs verrouillés.
    Une idée?

    Merci
    Jean-Pierre

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2017
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par adelion7015 Voir le message
    Bonsoir,

    c'est une idée qui m’intéresse aussi, j'ai testé et ca marche tres bien, il faut juste faire attention au "r" de Verrou et Verrouille.

    Cordialement.
    Merci !

  6. #6
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonjour Gepy-Bdx,

    il y a un bon Tuto a ce sujet :

    http://loufab.developpez.com/tutorie...s/classe-mela/

    Vous devriez jeter un coup d’œil.

    cordialement.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Personnellement je n'utilise pas les macros mais en VBA (procédure événementielle), il te suffit d'appeler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call GererVerrou(false)
    en plus du code pour ajouter un enregistremement.

    ou de changer légèrement le code de l'événement sur Activation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if me.NewRecord then
      call GererVerrou(false)
     else
      GererVerrou(true)
    end if
    A+

  8. #8
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonjour marot_r,

    Comment verrouillé aussi les boutons et les zones de listes deroulantes ?

    merci.

    cordialement.

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    • Les listes, c'est comme les autres contrôles de saisie : me.TaListe.Locked=true.
      Note que même verrouillée, on peut dérouler une liste mais on ne peut pas modifier la valeur sélectionnée.
      Si tu veux vraiment empêcher toute interaction, il faut la désactiver (me.TaListe.Enabled=false).
    • Les boutons, c'est me.TonBouton.Enabled=false.


    A+

  10. #10
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    bien reçu marot_r.

    merci.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2017
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Personnellement je n'utilise pas les macros mais en VBA (procédure événementielle), il te suffit d'appeler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call GererVerrou(false)
    en plus du code pour ajouter un enregistremement.

    ou de changer légèrement le code de l'événement sur Activation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if me.NewRecord then
      call GererVerrou(false)
     else
      GererVerrou(true)
    end if
    A+
    Bonjour,

    Je ne suis décidément pas très doué..
    J'ai placé le code ci-dessous dans la procédure événementielle de mon bouton et rien ne ce passe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Ajouter_Enregistrement_Click()
    If Me.NewRecord Then
      Call GererVerrou(False)
     Else
      GererVerrou (True)
    End If
    End Sub
    Merci de votre aide

  12. #12
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Je n'ai peut être pas été assez clair.
    Là tu as mélangé les 2 solutions que je te suggérais et en effet le cocktail ne fonctionne pas.

    La première solution, ajouter du code à la procédure événementielle du bouton, devrait te donner quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Ajouter_Enregistrement_Click()
      DoCmd.GoToRecord , , acNewRec 'Va sur un nouvel enregistrement
      Call GererVerrou(False) 'déverrouille les champs
    End Sub
    La seconde solution est simplement de mettre dans la procédure événementielle de sur activation (on current) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if me.NewRecord then
      call GererVerrou(false) 'C'est un  nouvel enregistrement, déverrouiller
     else
      GererVerrou(true) 'C'est un enregistrement existant, verrouiller.
    end if
    De mémoire Sur Activation se déclenche quand on arrive sur le nouvel enregistrement. Donc tu n'as pas à changer le code du bouton pour obtenir le résultat.

    A+

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Juillet 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2017
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Je n'ai peut être pas été assez clair.
    Là tu as mélangé les 2 solutions que je te suggérais et en effet le cocktail ne fonctionne pas.

    La première solution, ajouter du code à la procédure événementielle du bouton, devrait te donner quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Ajouter_Enregistrement_Click()
      DoCmd.GoToRecord , , acNewRec 'Va sur un nouvel enregistrement
      Call GererVerrou(False) 'déverrouille les champs
    End Sub
    La seconde solution est simplement de mettre dans la procédure événementielle de sur activation (on current) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if me.NewRecord then
      call GererVerrou(false) 'C'est un  nouvel enregistrement, déverrouiller
     else
      GererVerrou(true) 'C'est un enregistrement existant, verrouiller.
    end if
    De mémoire Sur Activation se déclenche quand on arrive sur le nouvel enregistrement. Donc tu n'as pas à changer le code du bouton pour obtenir le résultat.

    A+
    Cela fonctionne c'est super! merci

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

Discussions similaires

  1. [XL-2007] créer un bouton aperçu avant impression sur Excel
    Par hollywoodsky dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/12/2009, 17h44

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