OVH Cloud OVH Cloud

Problème de zones de liste déroulante

2 réponses
Avatar
Christophe974
Bonjour =E0 tous,

J'ai un petit probl=E8me =E0 vous soumettre.
J'ai 3 tables, ttes en relation de type un =E0 +sieurs
tbl1(ID_DEM, DEM)
tbl2(ID_OBJ,OBJ,ID_DEM#)
tbl3(ID_DET, ID_OBJ#, DATEDEB, DATEFIN)

1 formulaire bas=E9 sur:
source =3D (ID_DET, ID_DEM#, ID_OBJ#, DATEDEB, DATEFIN)

Dans ce formulaire 2 zones de liste d=E9roulante
Listbox1
source : (ID_DEM#) contenu =3D tbl1(ID_DEM, DEM)
Listbox2
source : (ID_OBj#) contenu =3D tbl2(ID_OBJ, OBJ)

Dans un 1er temps, je souhaiterai en s=E9lectionnant une
valeur de ma Listbox1 "filtrer" les valeurs de ma Listbox2
qui d=E9pendent de la valeur s=E9lectionn=E9e en Listbox1

Dans un second temps, pouvoir ajouter une nouvelle valeur
dans cette Listbox2 et mettre =E0 jour la table tbl2.

Un sp=E9cialiste aurait-il la solution?

Merci

2 réponses

Avatar
Eric
Bonjour Christophe974

Pour le prob n°1:
================ Sur l'évènement Après Mise à jour de ta ListBox1 (qui est une ComboBox je
suppose) tu mets :
Private Sub ListeBox1_AfterUpdate()
Me.ListBox2.Requery
End Sub

Le contenu de ta ListBox2 doit être du genre:
Select Id_Obj,Obj from tbl2 where tbl2.Id_Dem=Formulaires!NomDeTonForm!
ListBox1 (j'ai supposé les Id numériques sinon encadres par des ')

Enfin sur l'évènement MAJ de la ListBox2 tu mets un filtre pour
n'afficher que l(es)'enregistrement(s) correspondant(s)

Private Sub ListBox2_AfterUpdate()
Me.Filter = "ID_Obj=" & Me.ListBox2
Me.FilterOn = True
End Sub

J'ai fait ca à la volée mais ca ne doit pas être très loin de la
solution, du moins je pense.

Pour le problème n°2
=================== Voir l'évènement NotInList sur la ListBox2.
Tu as des infos à ce propos sur les sites de Raymond:
http://access.vba.free.fr/
http://access.seneque.free.fr/


Devant m'absenter pour l'après-midi, je ne peux t'en dire plus.
Repasserez ce soir voir si tu as eu des réponses et si je n'ai pas donné
de fausses infos.

A+
Eric


"Christophe974" écrivait
news:58c001c4748a$e5af5b40$:

Bonjour à tous,

J'ai un petit problème à vous soumettre.
J'ai 3 tables, ttes en relation de type un à +sieurs
tbl1(ID_DEM, DEM)
tbl2(ID_OBJ,OBJ,ID_DEM#)
tbl3(ID_DET, ID_OBJ#, DATEDEB, DATEFIN)

1 formulaire basé sur:
source = (ID_DET, ID_DEM#, ID_OBJ#, DATEDEB, DATEFIN)

Dans ce formulaire 2 zones de liste déroulante
Listbox1
source : (ID_DEM#) contenu = tbl1(ID_DEM, DEM)
Listbox2
source : (ID_OBj#) contenu = tbl2(ID_OBJ, OBJ)

Dans un 1er temps, je souhaiterai en sélectionnant une
valeur de ma Listbox1 "filtrer" les valeurs de ma Listbox2
qui dépendent de la valeur sélectionnée en Listbox1

Dans un second temps, pouvoir ajouter une nouvelle valeur
dans cette Listbox2 et mettre à jour la table tbl2.

Un spécialiste aurait-il la solution?

Merci





Avatar
Christophe974
Salut Eric,

Merci pour les différentes pistes que tu m'as
donné. Je vais les exploiter.

@+

-----Message d'origine-----
Bonjour Christophe974

Pour le prob n°1:
=================
Sur l'évènement Après Mise à jour de ta ListBox1 (qui
est une ComboBox je

suppose) tu mets :
Private Sub ListeBox1_AfterUpdate()
Me.ListBox2.Requery
End Sub

Le contenu de ta ListBox2 doit être du genre:
Select Id_Obj,Obj from tbl2 where
tbl2.Id_Dem=Formulaires!NomDeTonForm!

ListBox1 (j'ai supposé les Id numériques sinon encadres
par des ')


Enfin sur l'évènement MAJ de la ListBox2 tu mets un
filtre pour

n'afficher que l(es)'enregistrement(s) correspondant(s)

Private Sub ListBox2_AfterUpdate()
Me.Filter = "ID_Obj=" & Me.ListBox2
Me.FilterOn = True
End Sub

J'ai fait ca à la volée mais ca ne doit pas être très
loin de la

solution, du moins je pense.

Pour le problème n°2
====================
Voir l'évènement NotInList sur la ListBox2.
Tu as des infos à ce propos sur les sites de Raymond:
http://access.vba.free.fr/
http://access.seneque.free.fr/


Devant m'absenter pour l'après-midi, je ne peux t'en
dire plus.

Repasserez ce soir voir si tu as eu des réponses et si
je n'ai pas donné

de fausses infos.

A+
Eric


"Christophe974"
écrivait

news:58c001c4748a$e5af5b40$:

Bonjour à tous,

J'ai un petit problème à vous soumettre.
J'ai 3 tables, ttes en relation de type un à +sieurs
tbl1(ID_DEM, DEM)
tbl2(ID_OBJ,OBJ,ID_DEM#)
tbl3(ID_DET, ID_OBJ#, DATEDEB, DATEFIN)

1 formulaire basé sur:
source = (ID_DET, ID_DEM#, ID_OBJ#, DATEDEB, DATEFIN)

Dans ce formulaire 2 zones de liste déroulante
Listbox1
source : (ID_DEM#) contenu = tbl1(ID_DEM, DEM)
Listbox2
source : (ID_OBj#) contenu = tbl2(ID_OBJ, OBJ)

Dans un 1er temps, je souhaiterai en sélectionnant une
valeur de ma Listbox1 "filtrer" les valeurs de ma
Listbox2


qui dépendent de la valeur sélectionnée en Listbox1

Dans un second temps, pouvoir ajouter une nouvelle
valeur


dans cette Listbox2 et mettre à jour la table tbl2.

Un spécialiste aurait-il la solution?

Merci





.