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 :

Ruban 2007 : Synchroniser 2 ComboBox


Sujet :

IHM

  1. #1
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 576
    Points : 2 554
    Points
    2 554
    Par défaut Ruban 2007 : Synchroniser 2 ComboBox
    Bonjour à tous,

    est-il possible de synchroniser deux ComboBox dans le ruban 2007, de la même façon que dans un formulaire comme indiqué dans la faq ?http://access.developpez.com/faq/?page=zdl#DepZdl

    Pour l'instant, je ni suis pas parvenu... A priori, je bute sur la mise à jour de la deuxième comboBox après sélection de l'info dans la première... Je continu de creuser le sujet.

    Si quelqu'un a une piste...
    Curt

  2. #2
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 576
    Points : 2 554
    Points
    2 554
    Par défaut
    Bonjour à tous, la nuit portant conseil, j'ai résolu ma question (attention c'est un peu long).

    Comme indiqué dans le 1er message, je pars avec les mêmes données que la Faq http://access.developpez.com/faq/?page=zdl#DepZdl.
    Le but est de sélectionner un nom de pays dans une liste et ensuite une ville dans une liste de villes du pays sélectionné, le tout étant dans le Ruban 2007.

    J'ai donc 2 tables :

    TblPays
    <ID_Pays> Texte (clé primaire)

    TblVille
    <ID_Ville> NuméroAuto (clé primaire)
    <ID_Pays> Texte (clé étrangère)
    <NomVille> Texte

    Voilà le code Xml du Ruban à mettre dans la table USysRibbons
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad">
         <ribbon startFromScratch="true">
              <tabs>
                   <tab 
                        id="tabSelection" 
                        label="Sélection" 
                        >
                        <group 
                             id="grpSelection" 
                             label="Sélection"
                             >          
                             <labelControl 
                                  id="SelectionDuPays" 
                                  label="Sélection du pays" 
                             />
                             <comboBox
                                  id="cmbPays"
                                  label="Pays :"
                                  getItemCount="getPaysCount"
                                  getItemLabel="getPaysLabel"
                                  onChange="onChangePays"
                             />
                             <comboBox
                                  id="cmbVille"
                                  label="Ville :"
                                  getItemCount="getVilleCount"
                                  getItemLabel="getVilleLabel"
                                  getText="getVilleText"
                             />					
                        </group>
                   </tab>
              </tabs>
         </ribbon>
    </customUI>
    et voilà le code à placer dans un module (MduRuban)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    Option Compare Database
    Option Explicit
     
    Private oRst As DAO.Recordset
    Dim db As DAO.Database
     
    'Déclaration du Ruban 2007
    Public gobjRibbon As IRibbonUI
     
    'Sélection du Pays
    Public SelectionPays As String
     
    '********************
    ' Chargement du Ruban
    '********************
    Public Function LoadRibbon()
    Dim strXML As String
    Dim oFso As New FileSystemObject
    Dim oFtxt As TextStream
    End Function
     
    Public Sub OnRibbonLoad(ribbon As IRibbonUI)
    Set gobjRibbon = ribbon
    End Sub
     
    '**************
    ' Variable Pays
    '**************
    Public Function ValeurVarPays() As String
    ValeurVarPays = SelectionPays
    End Function
     
    '**************
    'Liste des pays
    '**************
    Sub getPaysCount(control As IRibbonControl, ByRef count)
        Set oRst = CurrentDb.OpenRecordset("SELECT TblPays.ID_Pays FROM TblPays;")
        'Récupère le nombre d'enregistrements
    With oRst
            .MoveLast
            count = .RecordCount
            .MoveFirst
        End With
    End Sub
     
    '***********************
    'Sur Sélection d'un Pays
    '***********************
    Sub onChangePays(control As IRibbonControl, ListePays As String)
        On Error GoTo Err_onChangeListePays
     
        Select Case control.ID
            Case "cmbPays"
            SelectionPays = ListePays
        End Select
     
        If Not (gobjRibbon Is Nothing) Then
            gobjRibbon.InvalidateControl "cmbVille"
        End If
     
    Exit_onChangeListePays:
        Exit Sub
     
    Err_onChangeListePays:
        'MsgBox Err.Description
        Resume Exit_onChangeListePays
    End Sub
     
    Sub getPaysLabel(control As IRibbonControl, index As Integer, ByRef label)
    On Error GoTo err
        With oRst
            label = .Fields("ID_Pays")
            .MoveNext
        End With
    Exit Sub
    err:
    MsgBox err.Description
    End Sub
     
    '****************
    'Liste des villes
    '****************
    Sub getVilleCount(control As IRibbonControl, ByRef count)
        Set oRst = CurrentDb.OpenRecordset("SELECT TblPays.ID_Pays, TblVille.Nom_ville FROM TblPays INNER JOIN TblVille ON TblPays.ID_Pays = TblVille.ID_Pays WHERE (((TblPays.ID_Pays)=ValeurVarPays()));")
        'Récupère le nombre d'enregistrements
    With oRst
            .MoveLast
            count = .RecordCount
            .MoveFirst
        End With
    End Sub
     
    Sub getVilleLabel(control As IRibbonControl, index As Integer, ByRef label)
    On Error GoTo err
        With oRst
            label = .Fields("Nom_ville")
            .MoveNext
        End With
    Exit Sub
    err:
    MsgBox err.Description
    End Sub
     
    Sub getVilleText(control As IRibbonControl, ByRef Text)
        If Not (gobjRibbon Is Nothing) Then
            gobjRibbon.InvalidateControl "cmbVille"
        End If
    Text = " "
    End Sub
    Voilà, c'est fini et ça fonctionne.
    Il vous restera à mettre l'action <onChange> sur la liste des villes pour lancer un traitement de l'information sélectionnée.

    Bonne journée à tous.
    Curt

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

Discussions similaires

  1. ComboBox Ruban 2007
    Par curt dans le forum IHM
    Réponses: 5
    Dernier message: 18/03/2009, 11h03
  2. Office 2007 look et combobox
    Par alen dans le forum MFC
    Réponses: 0
    Dernier message: 22/01/2009, 14h43
  3. Réponses: 1
    Dernier message: 17/10/2008, 23h04
  4. Ruban 2007 bloqué sur formulaire
    Par dz2006 dans le forum IHM
    Réponses: 2
    Dernier message: 04/10/2007, 14h39
  5. [C#] Problème de synchronisation de combobox
    Par WwiloO dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/12/2004, 19h56

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