Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste modifiable filtrée par le champ d'une autre table

6 réponses
Avatar
curt
Bonjour à tous.

encore et toujours ce problème de liste modifiable. Je ré-explique :

comment faire pour affaicher le contenu d'une liste déroulante filtrée par
le champ d'une autre table ? J'ai trouvé dans la base microsoft quelque
chose qui y ressemble (liste déroulante filtrée par une autre liste
déroulante : voir http://support.microsoft.com/kb/98660/fr pour info), mais
je ne parviens pas à l'adapter à mes besoins.

Si quelqu'un a déjà résolu la question, je serais grandement preneur de
l'exemple.

Bonne semaine à tous.

Curt

6 réponses

Avatar
Buddy
Bonjour à tous.
Salut



encore et toujours ce problème de liste modifiable. Je ré-explique :

comment faire pour affaicher le contenu d'une liste déroulante filtrée par
le champ d'une autre table ?
Faut être plus clair. Comment tu vois l'autre champ de la table ?


Le mieux, c'est de refaire ton RowSource en SQL à l'éxecution

Si tu vois ton champ filtrant sur ton form
Tu mets zdlListe.RowSource = "SELECT * FROM TaTable WHERE ChampFiltré=" & ChampFiltrant & ";"
Si tu ne vois pas ton champ filtrant alors tu l'extrait de la base avec un DlookUp et ensuite tu
refais ta clause WHERE




--
Ouala
Bye
Buddy

Avatar
curt
Bonjour Buddy,

ça ne fonctionne pas.
A l'ouverture de la base, je sélectionne un numéro d'affaire. C'est cette
valeur qui doit me servir de champ filtrant. Je renseigne ensuite mes
documents avec leurs indices de révision (indice en sous formulaire de
documents)
Ce que je veux obtenir, c'est la liste déroulante des bordereaux d'envoi
utilisés sous ce numéro d'affaire. Cette liste modifiable doit pouvoir être
complétée au fil des diffusions de documents.
Pour l'instant, je peux la compléter, mais la liste affichée regroupe
l'ensemble des bordereaux d'envoi utilisés pour toutes les affaires....

Si tu as un exemple, je suis preneur.
Merci en tout cas pour ton aide.
Curt


Bonjour à tous.
Salut



encore et toujours ce problème de liste modifiable. Je ré-explique :

comment faire pour affaicher le contenu d'une liste déroulante filtrée par
le champ d'une autre table ?
Faut être plus clair. Comment tu vois l'autre champ de la table ?


Le mieux, c'est de refaire ton RowSource en SQL à l'éxecution

Si tu vois ton champ filtrant sur ton form
Tu mets zdlListe.RowSource = "SELECT * FROM TaTable WHERE ChampFiltré=" & ChampFiltrant & ";"
Si tu ne vois pas ton champ filtrant alors tu l'extrait de la base avec un DlookUp et ensuite tu
refais ta clause WHERE




--
Ouala
Bye
Buddy






Avatar
Buddy
Bonjour Buddy,
Lus



ça ne fonctionne pas.
A l'ouverture de la base, je sélectionne un numéro d'affaire. C'est cette
valeur qui doit me servir de champ filtrant.


Stocke cette valeur dans une variable globale
du type : Global gNumAff As Long (déclaration à placer dans un module)

Je renseigne ensuite mes
documents avec leurs indices de révision (indice en sous formulaire de
documents)
Ce que je veux obtenir, c'est la liste déroulante des bordereaux d'envoi
utilisés sous ce numéro d'affaire. Cette liste modifiable doit pouvoir être
complétée au fil des diffusions de documents.
Pour l'instant, je peux la compléter, mais la liste affichée regroupe
l'ensemble des bordereaux d'envoi utilisés pour toutes les affaires....


Ensuite tu montes ton RowSource
v_sql = "SELECT * FROM BordereauxEnvois WHERE NumAff=" & gNumAff & ";"
zdlListe.RowSource = v_sql

Buddy


Si tu as un exemple, je suis preneur.
Merci en tout cas pour ton aide.
Curt


Bonjour à tous.
Salut



encore et toujours ce problème de liste modifiable. Je ré-explique :

comment faire pour affaicher le contenu d'une liste déroulante filtrée par
le champ d'une autre table ?
Faut être plus clair. Comment tu vois l'autre champ de la table ?


Le mieux, c'est de refaire ton RowSource en SQL à l'éxecution

Si tu vois ton champ filtrant sur ton form
Tu mets zdlListe.RowSource = "SELECT * FROM TaTable WHERE ChampFiltré=" & ChampFiltrant & ";"
Si tu ne vois pas ton champ filtrant alors tu l'extrait de la base avec un DlookUp et ensuite tu
refais ta clause WHERE




--
Ouala
Bye
Buddy







--
Ouala
Bye
Buddy



Avatar
curt
Salut Buddy, et merci pour l'aide.
Malheureusement, je ne vois pas comment faire.

N'est-il pas possible d'avoir un exemple avec une base très simple.
Tu l'auras deviné, je ne suis pas un expert en la matière en matière de SQL.

Curt
Avatar
Buddy
Salut Buddy, et merci pour l'aide.
Malheureusement, je ne vois pas comment faire.

N'est-il pas possible d'avoir un exemple avec une base très simple.
Tu l'auras deviné, je ne suis pas un expert en la matière en matière de SQL.


Bon on va faire du pas à pas

1. Tu crées un module nommé : modVars
2. Tu ouvres ton module et tu y mets dabs la zone déclaration :
Global gNumAff As Long
Puis tu crées une fonction :
Public Function gf_NumAff As Long
gf_NumAff = gNumAff
End Function
3. Tu sauvegardes ce module
4. Tu ouvres en modification ton form de sélection d'affaire à l'ouverture de la base
5. Sur l'évènement Sur Click de la zone de liste tu mets
If Not IsNull(zdlNomCtlListe) Then gNumAff = zdlNomCtlListe Else gNumAff = 0
6. Tu enregistres ton form
7. Tu ouvres en modification ton form utilisé pour la sélection des borderaux d'envois
8. Le contrôle liste contenant les borderaux d'envois disponibles est alimenté par une requête
9. Tu cliques sur les 3 ... à côté de la propriété Source du contrôle
10. Dans les critères du champ NumAff tu mets :
=gf_NumAff()
11. Tu sauvegardes ceci
12. Teste et contemple

Et si tu n'y arrive toujours pas, vu que je n'ai pas d'ex sous la main, envoie moi ton fichier vide
de toutes les données et je te ferais ceci gratis, gratis ! Tu entends GRATIS ! ;-)

Allez salut
(Vire 123 pour m'envoyer un email)


--
Ouala
Bye
Buddy

Avatar
curt
Merci pour ton aide...
Effectivement, je coince...

Si tu me donne ton adresse mail je t'envoi la DB
Merci pour tout.
Curt