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 :

Activer/Désactiver des boutons à bascule [AC-2003]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Activer/Désactiver des boutons à bascule
    Bonjour à tous,

    J'ai un petit formulaire dans lequel j'ai 2 boutons à bascule. Le premier est activé par défaut, le deuxième est déactivé par défaut. J'aimerais que lorsque j'active un bouton l'autre se déactive et vice-versa. Je croyais que le code SQL, que j'avoue ne pas tellement connaître, devait être relativement simple mais ça ne fonctionne pas.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub Bascule_active_Click()
    If Bascule_active = True Then
    Bascule_inactive = False
    Valide = Oui
    Else
    Bascule_inactive = True
    Valide = Non
    End If
     
    End Sub
     
     
    Private Sub Bascule_inactive_Click()
    If Bascule_inactive = True Then
    Bascule_active = False
    Valide = Non
    Else
    Bascule_active = True
    Valide = Oui
    End If
    End Sub
    À défaut d'avoir 2 boutons à bascule (et même je préférerai), y a-t-il moyen de changer le libellé sur le bouton à bascule lorsqu'il est activé et déactivé? Par exemple ici, lorsque le bouton est enfoncé, il serait écrit dessus "ACTIF" en vert et lorsqu'il n'est pas enfoncé il serait écrit dessus "INACTIF" en rouge.

    Merci de m'éclairer.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    Tes boutons bascules sont-ils dans le même groupe d'option ?

    Cordialement,

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonjour,

    Tes boutons bascules sont-ils dans le même groupe d'option ?

    Cordialement,
    Ah ben là tu m'as! J'ignorait l'existence de groupes d'options et comment m'y prendre pour m'assurer que c'est le cas. Bien que j'ai fait 2 ou 3 petites bases de données, elles étaient somme toute, plutôt simples et ce n'est que la semaine dernière que j'ai compris qu'il y avait autre chose que l'interface graphique access (lire la programmation en SQL). Donc, en utilisant l'interface je fais comment pour savoir?

    Merci!

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bonjour,

    Utilise plutôt une solution full ACCESS.

    1) prendre le composant Groupe d'options (on le reconnait grâce à son icone de cadre avec le titre XYZ).
    2) tu suis l'assistant : il va te proposer un tableau ou tu rentre le nom de tes étiquettes (actif, inactif) en face tu mets 0 pour actif et -1 pour inactif.
    3) tu choisis le type de contrôle (case à cocher, bouton d'option...)
    Maintenant qu'il est en place tu cliques sur le cadre et dans Source Contrôle tu choisis le nom de ton champ source.

    C'est pas plus compliqué que ça.

    MN_jacques, je pense que tu t'es trompé de forum. Ici tu es sur ACCESS, pas sur VB ni sur Forms.

    Cordialement,

    NB : pour savoir s'ils sont dans un groupe d'option, d'abord ils doivent être dans un cadre, puis lorsque tu cliques sur le cadre la feuille de propriété doit afficher Groupe d'options

  5. #5
    Membre du Club
    Homme Profil pro
    Consultant E-Business
    Inscrit en
    Février 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Consultant E-Business
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 78
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonjour,

    Utilise plutôt une solution full ACCESS.

    C'est pas plus compliqué que ça.

    MN_jacques, je pense que tu t'es trompé de forum. Ici tu es sur ACCESS, pas sur VB ni sur Forms.

    Cordialement,
    Ta raison mon vieux j'étais sur la voie menant à Paris croyant que j'étais sur celle de Miami et me suis rendu compte après.
    Ce que tu dois faire c'est utiliser la solution full ACCESS.

    Cordialement.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonjour,

    Utilise plutôt une solution full ACCESS.

    1) prendre le composant Groupe d'options (on le reconnait grâce à son icone de cadre avec le titre XYZ).
    2) tu suis l'assistant : il va te proposer un tableau ou tu rentre le nom de tes étiquettes (actif, inactif) en face tu mets 0 pour actif et -1 pour inactif.
    3) tu choisis le type de contrôle (case à cocher, bouton d'option...)
    Maintenant qu'il est en place tu cliques sur le cadre et dans Source Contrôle tu choisis le nom de ton champ source.

    C'est pas plus compliqué que ça.

    MN_jacques, je pense que tu t'es trompé de forum. Ici tu es sur ACCESS, pas sur VB ni sur Forms.

    Cordialement,

    NB : pour savoir s'ils sont dans un groupe d'option, d'abord ils doivent être dans un cadre, puis lorsque tu cliques sur le cadre la feuille de propriété doit afficher Groupe d'options

    Et bien voilà! C'était simple... une fois qu'on sait à quoi ça sert le groupe d'option! Ça fonctionne à merveille. Merci beaucoup!

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par MN_jacques Voir le message
    Je te conseillerai de le faire sur un seul bouton: commence par créer un bouton et tu le nomme:Bascule_active et sur la propriété text met ACTIF et essaie de copier et coller le code si dessous :
    [SUPPRIME]
    Et montre nous le message d'erreur le cas échéant.

    Cordialement.
    J'ai utilisé la méthode FULL ACCESS comme vous l'avez appelé. Ça fonctionne très bien mais avec 2 boutons. J'ai tout de même essayé votre solution mais il y a un os. Dès que je tape «Handles Bascule_active.Click» Access ne reconnait plus la ligne comme définition de procédure (enfin, ce que je déduis) puisque la ligne devient en rouge, comme un commentaire. Et si je reviens dans les propriétés de mon formulaire et clique de nouveau sur «procédure événementielle», Access me tape une nouvelle ligne «Private Sub Bascule_active_Click()»

    Y a-t-il un solution FULL ACCESS pour changer la couleur du bouton s'il est activé ou déactivé? (Activé, background ou foreground =vert. Déactivé, background ou foreground =rouge). Sinon, La solution serait SQL et devrait être plutôt simple si je me fie à votre code précédant?

    Merci!

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    ATTENTION ! Ce code n'est pas ACCESS, c'est du Form ou du VB. Il ne fonctionnera pas sous ACCESS.

    Pour le troisième bouton, il suffit de le rajouter dans le groupe d'option et de paramétrer ses propriétés.

    Pour la gestion des couleurs utilise le Après Maj du cadre d'option.

    [EDIT] plutôt l'évènement sur click pour voir l'effet en temps réel.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par loufab Voir le message
    ATTENTION ! Ce code n'est pas ACCESS, c'est du Form ou du VB. Il ne fonctionnera pas sous ACCESS.

    Pour le troisième bouton, il suffit de le rajouter dans le groupe d'option et de paramétrer ses propriétés.

    Pour la gestion des couleurs utilise le Après Maj du cadre d'option.

    [EDIT] plutôt l'évènement sur click pour voir l'effet en temps réel.
    J'ai pris des informations ici et là et j'en suis «presque» à la solution idéale avec 1 seul bouton. En utilisant les événements; sur clic, sur réception focus et perte focus et le code SQL suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Active_Click()
    If Active = True Then
    Me.Active.ForeColor = vbGreen
    Me.Active.FontBold = True
    Me.Active.Caption = "ACTIVE"
    Else
    Me.Active.ForeColor = vbRed
    Me.Active.FontBold = True
    Me.Active.Caption = "INACTIVE"
    End If
    End Sub
    Donc le tout fonctionne très bien quand je clic sur le bouton au moins 1 fois. Le problème est que je dois effectivement cliquer au moins une fois sinon le code ne s'active pas et lorsque je passe d'un enregistrement à un autre, le bouton va s'enfoncer ou se soulever selon que l'enregistrement indique que «Active» = True mais le texte et la couleur restent inchangés. Si je clic au moins 1 fois, tout est ok en passant d'un enregistrement à un autre le texte, la couleur et l'état du bouton correspondent tous.

    Je me demande donc s'il n'y aurait pas moyen de faire un événement sur lecture d'un enregistrement au lieu de sur (ou plutôt en plus de) l'événement sur clic. Je sais qu'on peut exécuté sur ouverture d'un formulaire avec Form_Open(Cancel As Integer). Est-ce qu'il y a un équivalent pour l'ouverture ou la lecture d'un enregistrement?

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Fait un appel a ta procédure depuis l'évènement "Sur activation" du formulaire.

    Comme ceci:

    Ainsi chaque fois qu'il va charger un record il exécutera le code.

    Dans tous les cas il te faut conserver le Active_Click() sinon comment ça va fonctionner lorsque tu cliqueras ?!

    Cordialement,

  11. #11
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par loufab Voir le message
    Fait un appel a ta procédure depuis l'évènement "Sur activation" du formulaire.

    Comme ceci:

    Ainsi chaque fois qu'il va charger un record il exécutera le code.

    Dans tous les cas il te faut conserver le Active_Click() sinon comment ça va fonctionner lorsque tu cliqueras ?!

    Cordialement,
    Hmmm. C'est peut-être moi qui ne comprend pas bien mais (qui ajoute les parenthèses () automatiquement quand tu inscris "Private Sub Active_Click") c'est pour l'événement "Sur clic" non? Ce que j'ai déjà dans mon code. Mais oui, c'est exactement ce que j'aurai besoin, un code qui va s'exécuter à chaque fois qu'on charge un record. Et oui, je garderais le code pour le changement de statut du bouton sur clic de la souris.

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 064
    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 064
    Points : 24 673
    Points
    24 673
    Par défaut
    Bon ! petite explication de texte.

    Tu as besoin de cette action (coloré les boutons) lors de 2 événements :
    • lorsque tu cliques sur les boutons.
    • lorsque les enregistrements sont affichés.


    Pour éviter de dupliquer le code (la duplication c'est caca) tu laisses le code dans le Click du cadre. Pour faire l'appel à lors du changement d'enregistrement tu fais un appel du code du click depuis l'évènement d'activation (form_current).

    Tout ceci se fait depuis VBA ET UNIQUEMENT depuis VBA. inutile de mettre l'appel dans la propriété ça ne fonctionnera pas.

    Est-ce plus clair ?

    Cordialement,

  13. #13
    Membre à l'essai
    Homme Profil pro
    Responsable du parc et des réseaux de télécommunication
    Inscrit en
    Mai 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Responsable du parc et des réseaux de télécommunication
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2015
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bon ! petite explication de texte.

    Tu as besoin de cette action (coloré les boutons) lors de 2 événements :
    • lorsque tu cliques sur les boutons.
    • lorsque les enregistrements sont affichés.


    Pour éviter de dupliquer le code (la duplication c'est caca) tu laisses le code dans le Click du cadre. Pour faire l'appel à lors du changement d'enregistrement tu fais un appel du code du click depuis l'évènement d'activation (form_current).

    Tout ceci se fait depuis VBA ET UNIQUEMENT depuis VBA. inutile de mettre l'appel dans la propriété ça ne fonctionnera pas.

    Est-ce plus clair ?

    Cordialement,

    Limpide! l'événement "Form_Current" est ce qui me manquait. Ça marche à la perfection maintenant. Un gros merci!

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

Discussions similaires

  1. Activation - désactivation des macros
    Par olivepao dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/07/2008, 12h55
  2. Réponses: 2
    Dernier message: 15/05/2007, 11h57
  3. utilisation des boutons à bascules incoherente
    Par laurent.w dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2006, 15h12
  4. [Win32] activer/désactiver un bouton
    Par gdpasmini dans le forum MFC
    Réponses: 2
    Dernier message: 07/06/2006, 18h10
  5. Activer / désactiver des périphériques
    Par adage2000 dans le forum MFC
    Réponses: 3
    Dernier message: 28/04/2005, 16h51

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