OVH Cloud OVH Cloud

pb avec zone de liste

2 réponses
Avatar
bb
Bonjour =E0 tous,

Voici mon probl=E9me :
J'ai un formulaire Ordinateurs et dans ce formulaire j'ai=20
une zone de liste "Relier" et je voudrai que cette zone de=20
liste correspond =E0 l'ordinateur en question.
Cela marche pour un ordinateur, mais quand je fait=20
l'ordinateur suivant la zone de liste n'a pas chang=E9.

Merci d'avance.

BB

2 réponses

Avatar
Raymond [mvp]
bonjour.

les zones de liste sont faites pour sélectionner une valeur et afficher
l'enregistrement correspondant à cette valeur. dans ce cas, la zone de liste
affiche toujours la valeur correspondante. Lorsque tu circules dans les
enregistrements par les boutons de déplacement, cette liste, qui est
indépendante n'est pas mise à jour et indique toujours la dernière valeur
sélectionnée. Ce qui ne gêne en rien les données car la fonction de cette
liste n'est pas de saisir des données. Si toutesfois tu veux que la liste
affiche la valeur correspondante à l'enregistrement affiché, tu charges la
valeur dans l'événement Form_Current:
Me.maliste = Me.Numéro
ce qui n'apporte rien à ton application.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"bb" a écrit dans le message de
news:1c8e101c452b2$12791d00$
Bonjour à tous,

Voici mon probléme :
J'ai un formulaire Ordinateurs et dans ce formulaire j'ai
une zone de liste "Relier" et je voudrai que cette zone de
liste correspond à l'ordinateur en question.
Cela marche pour un ordinateur, mais quand je fait
l'ordinateur suivant la zone de liste n'a pas changé.

Merci d'avance.

BB
Avatar
vdavid
La liste peut être un sous-formulaire, dans ce cas , pas de problème :
automatique avec champ fils champ père.
Si c'est un combo ou un listBox voici

Indiquer dans le ControlSource une formule tenant compte de la valeur de la
clé de ordinateur : Soit Relier le nom de la table et de la liste, et
ID_Ordi, le nom du champ clé ordinateur :

SELECT * FROM relier WHERE ID_Ordi=formulaires.ordis.id_Ordi;

Puis il faut forcer la mise à jour lors d'un changement d'enregistrement ou
après la mise à jour de la clé:

Private Sub Form_Current()
Relier.Requery
End Sub

Private Sub ID_Ordi_AfterUpdate()
Relier.Requery
End Sub

On peut aussi positionner Relier.ControlSource en recalculant la requête SQL
selon la valeur courante de la clé si on ne veut pas utiliser
formulaires.ordis (que je ne trouve pas très propre...)

VD

"bb" a écrit dans le message de
news:1c8e101c452b2$12791d00$
Bonjour à tous,

Voici mon probléme :
J'ai un formulaire Ordinateurs et dans ce formulaire j'ai
une zone de liste "Relier" et je voudrai que cette zone de
liste correspond à l'ordinateur en question.
Cela marche pour un ordinateur, mais quand je fait
l'ordinateur suivant la zone de liste n'a pas changé.

Merci d'avance.

BB