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 :

associer plusieurs groupes d'options [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut associer plusieurs groupes d'options
    bonjour,
    j'aimerai savoir si on eut associer plusieurs groupes d'options ensemble dans le sens ou la valeur du 1er groupe + la valeur de 2 eme groupe + la valeur du 3 eme groupe = action
    j'ai deja utilisé un premier groupe en utilisant le select case mais je ne sais pas comment l'associer avec le cadre 20.(si cadre 10 and cadre 20=ok)

    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
    Private Sub Cadre10_afterUpdate()
    If Cadre10.Value = 0 Then
       Cadre10.Value = Cadre10.Value + 1
    End If
     
    Select Case Me.Cadre10.Value
       Case Is = 4
          WindowsMediaPlayer0.URL = "C:\1.avi"
          WindowsMediaPlayer0.Object.Controls.currentPosition = 2
       Case Is = 2
          WindowsMediaPlayer0.URL = "C:\2.mp4"
          WindowsMediaPlayer0.Object.Controls.currentPosition = 2
    End Select
     
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Cadre20_afterUpdate()
    If Cadre20.Value = 0 Then
       Cadre20.Value = Cadre20.Value + 1
    End If
     
    Select Case Me.Cadre0.Value
       Case Is = 1
          ?????????????????
       Case Is = 3
          ????????????????
    End Select
     
    End Sub

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    La solution qui me parait la plus simple est d'avoir une seule procédure qui traite les 3 options.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Cadre10_afterUpdate()
       call TraiterOption()
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Cadre20_afterUpdate()
       call TraiterOption()
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private sub TraiterOption()
       if Me.Cadre10.Value=4 and Me.Cadre20.Value=1 then
            'faire quelque chose
       elseif Me.Cadre10.Value = uneAutreValeur and Me.Cadre20.Value = encoreUneAutreValeur then
            'faire autre chose
       elseif Me.Cadre10.Value = uneAutreAutreValeur and Me.Cadre20.Value = encoreUneAutreAutreValeur then
            'faire autre autre chose
       else
            'Aucun des cas précédents, erreur de codage
            error 5 'Premet de détecter si on a manqué une combinaison
       end if
     
    end sub

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    Une petite question dans mon cadre 10 et le cadre 20 se trouvent des cases à cocher . Comment appeler traiter option en fonction de la valeur que renvoi les cases?

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Tu appelle systématiquement TraiterOption() et c'est dans le code TraiterOption() que tu regardes quelle est la valeur.

    Le traitement s'effectue dans la série de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if then 
      elseif 
      else 
    end if
    qui gère les différentes valeurs. Cela permt de centraliser la logique de décision à une seule place.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Points : 168
    Points
    168
    Par défaut
    Je te remercie, je vais essayer cela. Et donc cela veut dire que ça ne peut fonctionner avec du sélect case!!

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 371
    Points : 23 845
    Points
    23 845
    Par défaut
    Non tu pourrais aussi utiliser la clause sélect comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Select Case Me.Cadre10.Value
       Case Is = 4
          select case Me.Cadre20.Value
             case uneValeur
                'Ici du code
             case uneAutreValeur
                'ici du code
          end select
     
       Case Is = 2
          WindowsMediaPlayer0.URL = "C:\2.mp4"
          WindowsMediaPlayer0.Object.Controls.currentPosition = 2
    End Select
    2 select case imbriqués correspondent à un AND mais je trouve que c'est un peu moins lisible.

    A+

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2015, 16h26
  2. Réponses: 3
    Dernier message: 08/03/2008, 18h18
  3. Groupe d'options : cocher plusieurs valeurs
    Par mawi dans le forum IHM
    Réponses: 5
    Dernier message: 24/09/2007, 11h04
  4. plusieurs choix dans un meme groupes d'option
    Par pit88 dans le forum IHM
    Réponses: 1
    Dernier message: 20/06/2007, 13h51
  5. Réponses: 7
    Dernier message: 19/10/2004, 23h40

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