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

OpenOffice & LibreOffice Discussion :

Recuperer des valeurs d'une liste déroulante sur une autre liste


Sujet :

OpenOffice & LibreOffice

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Recuperer des valeurs d'une liste déroulante sur une autre liste
    Bonjour,

    Je construit une base de donnée, assez simple sur le principe :

    ma base de donné regroupe ce que l'on appel des "projets" (un projet est composé de plusieurs couches) et les couches en question. Une couche est une unique mais peut se trouver dans plusieurs projets.
    Les couches sont rangé dans plusieurs serveurs :
    (W) il contient une vingtaine de thématique
    (X) il contient les services de ma boite et leur projet
    (V) les données de références

    Je construit actuellement le formulaire pour renseigner le projet et les couches qu'il contient (cf image).
    Ce qui m’embête et me bloque dans ce formulaire c'est que je voudrais "trier" les couches avant de les sélectionnées.

    Je m'explique, lorsque la base de donnée sera complète il y aura plus de 200 couches. Il sera alors fastidieux de les choisir dans la liste déroulante lorsque nous voudrons remplir le formulaire projet (rappel : dans le formulaire projet je sélectionne les couches qu'il contient)
    Pour cette raison j'ai créé deux listes déroulantes:
    -Dans la première je sélectionne un réseaux
    -La deuxième me propose les dossiers contenu dans ce réseau
    -Et enfin la troisième m'affiche uniquement les couches contenu dans le dossier sélectionne à la deuxième liste. Je peux ensuite choisir la couche désirée pour l'ajouter au projet.

    Alors, j'ai essayé en faisant des maccros, j'ai tenté également des requêtes sql. J'ai lu pas mal de forum, tuto et autres mais je suis complétement perdu : je n'arrive pas à trouver une solution pour ce formulaire.

    Quelqu'un aurait une petite idée ?

    Merci d'avance !
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Bonjour,

    Le plus simple ne serait-il pas de mettre les champs en sous-formulaire les uns des autres, et ainsi le second dépendra des données du premier et le troisième du second : voir ceci.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Tout d'abord merci de votre réponse !

    J'avais pensé à mettre en place des sous formulaires, mais la troisième liste est déjà un sous formulaire (de "projet")

    Du coup j'ai trouvé une maccro qui me permet de passer de la première à la deuxième liste :
    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
    option explicit
     
    dim PysLstT_reseau as Object , PysLstT_emplacement AS Object
     
    Sub PysOpen(PysEvent)
     
    dim PysContainer  as object, PysConnection as object
    dim PysProp(1) as New com.sun.star.beans.PropertyValue 
     
    PysContainer =  PysEvent.Source.Model.Parent.ActiveConnection.Parent.DatabaseDocument.FormDocuments
    PysConnection = PysEvent.Source.Model.Parent.ActiveConnection
    PysProp(0).Name = "ActiveConnection"
    PysProp(0).Value = PysConnection
    PysProp(1).Name = "OpenMode"
    PysProp(1).Value = "open"
    PysContainer.loadComponentFromURL("T_reseau","_blank",0,PysProp())
     
    end sub
     
    sub PysRefresh
    ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_reseau").refresh
    end sub
     
    sub PysMajListe
     
     
    DIM var_id_reseau as integer
     
    PysLstT_reseau = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_reseau")
    PysLstT_emplacement = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("lbox_emplacement")
     
    var_id_reseau = PysLstT_reseau.SelectedItems(0)
     
    PysLstT_emplacement.ListSource() = array("SELECT nom_dossier, id_emplacement FROM T_emplacement WHERE id_reseau =" & var_id_reseau)
    PysLstT_emplacement.refresh 
     
    end sub
     
    sub PysActualisation
     
    dim ExoTrav
     
    PysMajListe
     
    ExoTrav= ExoRechercheDansTableau(PysLstT_emplacement.ValueItemList, PysLstT_emplacement.boundField.Value)
     
    if ExoTrav <> "#N/A" then
    	PysLstT_emmplacement.SelectedItems = array(ExoTrav)
    else
    	PysLstT_emplacement.SelectedItems = array(0)
    end if
     
    end sub
     
    Function ExoRechercheDansTableau(ExoTablo, ExoRech)
    dim i as integer
     
    ExoRechercheDansTableau = "#N/A"
     
    for i = lbound(ExoTablo) to ubound(ExoTablo)
    	if ExoTablo(i)= ExoRech then
    		ExoRechercheDansTableau = i
    		exit for
    	end if
    next i
     
    end function
    Je cherche dorénavant à passer de la deuxième à la troisième...

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/08/2014, 15h01
  2. Réponses: 33
    Dernier message: 27/09/2012, 11h46
  3. Réponses: 1
    Dernier message: 23/09/2009, 03h23
  4. Réponses: 7
    Dernier message: 03/12/2007, 15h37
  5. Réponses: 3
    Dernier message: 23/10/2007, 13h35

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