Frequently asked questions - Base

    From The Document Foundation Wiki
    < Faq‎ | Base
    This page is a translated version of the page Faq/Base/135 and the translation is 88% complete.
    Outdated translations are marked like this.
    Other languages:


    Comment implémenter une suggestion d'index ?

    Lors de la saisie d'un champ on souhaite pouvoir choisir dans la liste des valeurs déjà contenues dans le champ. Dans Calc ceci est disponible pour les valeurs textuelles avec la liste de sélection (clic droit ou Alt + ).

    On souhaite obtenir :

    copie d'écran affichage d'index en liste
    Sélection dans un index sans doublons

    Base permet de réaliser cela mais uniquement dans un formulaire :

    • Autrement dit, pas en saisie "directe" de table,
    • Si on souhaite une saisie en mode "tableau" (feuille de données), il suffit de créer un formulaire en choisissant cette présentation dans l'assistant ; la saisie se fera alors via un contrôle "table".

    Le principe sera d'utiliser un contrôle Zone combinée dont le type de contenu sera Sql et le contenu une requête du type :

     SELECT DISTINCT "Instrument" FROM "Table1" ORDER BY "Instrument" ASC

    Nota :

    • Le mot-clé DISTINCT permet de lister sans doublons.
    • La liste est ordonnée pour faciliter la recherche.
    • Il est conseillé d'ajouter un index sur le champ recherché (clic sur le bouton Ébauche d'index en mode édition de table).

    Ci-dessous les copies d'écran du paramétrage :

    copie d'écran paramétrage du contrôle
    Source SQL de la Zone combinée

    Utiliser un contrôle Zone combinée autorise la saisie de nouvelles valeurs. Ces dernières sont prises en compte instantanément dans la liste mais sont ajoutées par défaut en fin de liste jusqu'à la prochaine actualisation. On peut forcer l'actualisation en associant à l'événement A la réception du focus du contrôle, une macro du type :

     option explicit
    Sub PysAcutaliserListe(PysEvent)
    PysEvent.source.model.refresh
    End Sub