[Résolu][Base] filtrer liste déroulante dans controle table

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
skaribou
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 07 juin 2010 09:05

[Résolu][Base] filtrer liste déroulante dans controle table

Message par skaribou »

Le Modérateur a écrit : :alerte: Merci de ne pas inventer et de respecter la syntaxe des balises : http://user.services.openoffice.org/fr/ ... c1369.html
Le balisage doit bien sûr être correctement orthographié (première lettre en majuscule puis le reste en minuscules).
Bonjour,

J'ai suivi le fil
http://user.services.openoffice.org/fr/ ... 662#p81396

qui m'a permis de filtrer le contenu d'une liste d'après le contenu d'une autre dans un formulaire. J'utilise la macro suivante

Code : Tout sélectionner

sub PysMajListe
'************************************************************************************************
'Lancée sur modification de la liste des marques pour mettre à jour la liste des modèles
'************************************************************************************************

DIM var_idformation as integer

'Recupere les composants liste

PysLstFormation = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("formation").getByName("lstform")
PysLstSession = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("Inscription").getByName("lstsession")

'Recupere l'id de la formation selectionnée

'Syntaxe si le champ n'est pas lié à un champ de la base
var_idformation = PysLstFormation.SelectedItems(0)+1 

'Syntaxe si le champ est lié à un champ de la base
' var_idformation = PysLstFormation.valueItemList(PysLstFormation.SelectedItems(0))

'Modifie la requete SQL de la liste des sessions :

PysLstSession.ListSource() = array("SELECT concat(`intitule`, concat (' ', `datedeb`)), `idsession` FROM `pivoine2`.`sessions` WHERE refformation =" & var_idformation)
PysLstSession.refresh 
 
J'ai essayé d'appliquer la même méthode à une liste contenu dans un contrôle de table mais je n'arrive pas à atteindre la liste, j'ai essayé à tâton en modifiant de la sorte

Code : Tout sélectionner

PysLstSession = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("Inscription").getByName("Controle_de_table").getByName("lstsession")
Mais aucun résultat.

Cette opération est peut être impossible, je sèche complétement.

Merci d'avance
Dernière modification par skaribou le 07 juin 2011 08:31, modifié 2 fois.
OpenOffice 3.3.0 XP proSP3
LibreOffice 3.3.4 Ubuntu 10.04.03 64 bit
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [base] filter liste déroulante dans controle de table

Message par Dude »

Salut,
skaribou a écrit :J'ai essayé d'appliquer la même méthode à une liste contenu dans un contrôle de table
Sans voir la base, comment penses-tu que l'on puisse t'aider ?

Un contrôle de table est relativement complexe car il contient d'autres contrôles. En plus, son jeu d'API va changer avec la prochaine 3.4.0.
Avatar de l’utilisateur
skaribou
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 07 juin 2010 09:05

Re: [Base] filter liste déroulante dans controle de table

Message par skaribou »

Oups,

Voici la base, le formulaire individu2 contient le contrôle de table dans lequel la liste ne fonctionne pas.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.3.0 XP proSP3
LibreOffice 3.3.4 Ubuntu 10.04.03 64 bit
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Re: [Base] filtrer liste déroulante dans controle de table

Message par Pierre-Yves Samyn »

Bonjour
skaribou a écrit :J'ai essayé d'appliquer la même méthode à une liste contenu dans un contrôle de table mais je n'arrive pas à atteindre la liste, j'ai essayé à tâton en modifiant de la sorte :

Code : Tout sélectionner

PysLstSession = ThisComponent.DrawPage.Forms.getByName("Standard").getByName("Inscription").getByName("Controle_de_table").getByName("lstsession")
Oui mais comme tu as nommé ton contrôle Table table tu y accéderas mieux comme ceci :

Code : Tout sélectionner

ThisComponent.DrawPage.Forms.getByName("Standard").getByName("Inscription").getByName("table").getByName("lstsession")
Avatar de l’utilisateur
skaribou
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 07 juin 2010 09:05

Re: [Base] filtrer liste déroulante dans controle de table

Message par skaribou »

Évidemment, ça marche mieux comme ça. En tout cas la méthode était la bonne.

Merci beaucoup
OpenOffice 3.3.0 XP proSP3
LibreOffice 3.3.4 Ubuntu 10.04.03 64 bit
El_Brouno
Membre hOOnoraire
Membre hOOnoraire
Messages : 175
Inscription : 28 sept. 2018 07:14

Re: [Résolu][Base] filtrer liste déroulante dans controle ta

Message par El_Brouno »

Bonjour,

je cherche à faire la même chose mais lorsque j'ouvre ton fichier pivoine2.odb pour voir ta méthode, j'ai un message d'erreur.
Impossible d'établir la connexion à la source de données "pivoine2".
Statut SQL: IM002
[unixODBC][Driver Manager]Data source name not found, and no default driver specified
Quel dommage !
Merci en tout cas, je crois maintenant que ce que j'imaginais est tout à fait possible
:)

Si quelqu'un a envie de m'aider, voici le lien vers mon souc'ail :
https://forum.openoffice.org/fr/forum/v ... 5&start=30

Amicalement
Bruno
Libre Office 7.1.7.2 sous Windows 10
Java JDK 15
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Résolu][Base] filtrer liste déroulante dans controle ta

Message par Bidouille »

Ami fossoyeur,

Veillez à ne rien déterrer à l'avenir...

Surtout si le fil est marqué résolu depuis 2011.