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

Liste déroulante qui aliment une autre liste déroulante

8 réponses
Avatar
Leyley39
Bonjour

J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
activité et un pour les différents tâches dans chaque activité). Je voudrais
donc qu'en sélectionnant une activité, seule les tâche de ces activités
s'affichent dans le deuxième menu déroulant.

J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
première table liste les type d'activité et la deuxième table liste les tâche
en les affectant à une activité.

J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
choisi une activité, j'ai bien la liste des tâches de cette activité dans la
deuxième liste. Le problème est que, si je vais sur une deuxième ligne
d'enregistrement du formulaire continu et que je choisi une autre activité et
une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
truc dans mon code.

Quelqu'un peu m'aider ?

Voici mon code :

Private Sub cmbactivite_AfterUpdate()
Dim IngIDCat As Long
Dim SQL As String

''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
If Not IsNumeric(Me!cmbactivite) Then Exit Sub
'' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
lngIDCat = Me!cmbactivite
''Construit la chaîne SQL avec l'activité concernée''
SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
WHERE N°_LISTE_ACTIVITE =" & lngIDCat

'' Affecte la chaîne SQL à la liste des tâches ''
cmbtache.RowSource = SQL
''Déverrouille la liste des tâches ''
cmbtache.Enabled = True
'' Donne le focus la liste des tâches''
cmbtache.SetFocus
''Déroule la liste des tâches ''
cmbtache.Dropdown

End Sub

--
Merci de votre aide

Leyley39

8 réponses

Avatar
gilles
On 1 sep, 16:25, Leyley39 wrote:
Bonjour

J'ai créé un formulaire en continu avec deux menus déroulants (un p our des
activité et un pour les différents tâches dans chaque activité). Je voudrais
donc qu'en sélectionnant une activité, seule les tâche de ces activ ités
s'affichent dans le deuxième menu déroulant.

J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
première table liste les type d'activité et la deuxième table liste les tâche
en les affectant à une activité.

J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
choisi une activité, j'ai bien la liste des tâches de cette activit é dans la
deuxième liste. Le problème est que, si je vais sur une deuxième li gne
d'enregistrement du formulaire continu et que je choisi une autre activit é et
une autre tâche, la tâche de la première ligne s'efface. Il doit ma nquer un
truc dans mon code.

Quelqu'un peu m'aider ?

Voici mon code :

Private Sub cmbactivite_AfterUpdate()
Dim IngIDCat As Long
Dim SQL As String

 ''Vérifie que l'on a cliqué sur une catégorie pour éviter le N ull''
 If Not IsNumeric(Me!cmbactivite) Then Exit Sub
 '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
 lngIDCat = Me!cmbactivite
 ''Construit la chaîne SQL avec l'activité concernée''
 SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LIST E_TACHE
WHERE N°_LISTE_ACTIVITE =" & lngIDCat

 '' Affecte la chaîne SQL à la liste des tâches ''
 cmbtache.RowSource = SQL
 ''Déverrouille la liste des tâches ''
 cmbtache.Enabled = True
 '' Donne le focus la liste des tâches''
 cmbtache.SetFocus
 ''Déroule la liste des tâches ''
 cmbtache.Dropdown

End Sub

--
Merci de votre aide

Leyley39



Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
que la source de ta liste deroulante tache est bien un champs de cette
3 eme table ( pas le rowsource mais le recordsource )
Avatar
Leyley39
Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
enregistré mon choix dans le menu déroulant. Le premier menu déroulant doit
être enregistré dans la 3e table "Activité Pro" dans le champ "Act_pro" et le
deuxième menu s'enregistre aussi dans la même 3e table dans le champ
"tache_pro"
--
Merci de votre aide

Leyley39


"gilles" a écrit :

On 1 sep, 16:25, Leyley39 wrote:
> Bonjour
>
> J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
> activité et un pour les différents tâches dans chaque activité). Je voudrais
> donc qu'en sélectionnant une activité, seule les tâche de ces activités
> s'affichent dans le deuxième menu déroulant.
>
> J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
> première table liste les type d'activité et la deuxième table liste les tâche
> en les affectant à une activité.
>
> J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> choisi une activité, j'ai bien la liste des tâches de cette activité dans la
> deuxième liste. Le problème est que, si je vais sur une deuxième ligne
> d'enregistrement du formulaire continu et que je choisi une autre activité et
> une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> truc dans mon code.
>
> Quelqu'un peu m'aider ?
>
> Voici mon code :
>
> Private Sub cmbactivite_AfterUpdate()
> Dim IngIDCat As Long
> Dim SQL As String
>
> ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
> lngIDCat = Me!cmbactivite
> ''Construit la chaîne SQL avec l'activité concernée''
> SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> WHERE N°_LISTE_ACTIVITE =" & lngIDCat
>
> '' Affecte la chaîne SQL à la liste des tâches ''
> cmbtache.RowSource = SQL
> ''Déverrouille la liste des tâches ''
> cmbtache.Enabled = True
> '' Donne le focus la liste des tâches''
> cmbtache.SetFocus
> ''Déroule la liste des tâches ''
> cmbtache.Dropdown
>
> End Sub
>
> --
> Merci de votre aide
>
> Leyley39

Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
que la source de ta liste deroulante tache est bien un champs de cette
3 eme table ( pas le rowsource mais le recordsource )



Avatar
gilles
On 2 sep, 09:58, Leyley39 wrote:
Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit ê tre
enregistré mon choix dans le menu déroulant. Le premier menu déroul ant doit
être enregistré dans la 3e table "Activité Pro" dans le champ "Act_ pro" et le
deuxième menu s'enregistre aussi dans la même 3e table dans le champ
"tache_pro"
--
Merci de votre aide

Leyley39

"gilles" a écrit :



> On 1 sep, 16:25, Leyley39 wrote:
> > Bonjour

> > J'ai créé un formulaire en continu avec deux menus déroulants ( un pour des
> > activité et un pour les différents tâches dans chaque activit é). Je voudrais
> > donc qu'en sélectionnant une activité, seule les tâche de ces a ctivités
> > s'affichent dans le deuxième menu déroulant.

> > J'ai donc créé une table Liste_Activité et une table Liste_Tâ che. La
> > première table liste les type d'activité et la deuxième table l iste les tâche
> > en les affectant à une activité.

> > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lor sque je
> > choisi une activité, j'ai bien la liste des tâches de cette activ ité dans la
> > deuxième liste. Le problème est que, si je vais sur une deuxièm e ligne
> > d'enregistrement du formulaire continu et que je choisi une autre act ivité et
> > une autre tâche, la tâche de la première ligne s'efface. Il doi t manquer un
> > truc dans mon code.

> > Quelqu'un peu m'aider ?

> > Voici mon code :

> > Private Sub cmbactivite_AfterUpdate()
> > Dim IngIDCat As Long
> > Dim SQL As String

> >  ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> >  If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> >  '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDC at''
> >  lngIDCat = Me!cmbactivite
> >  ''Construit la chaîne SQL avec l'activité concernée''
> >  SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> > WHERE N°_LISTE_ACTIVITE =" & lngIDCat

> >  '' Affecte la chaîne SQL à la liste des tâches ''
> >  cmbtache.RowSource = SQL
> >  ''Déverrouille la liste des tâches ''
> >  cmbtache.Enabled = True
> >  '' Donne le focus la liste des tâches''
> >  cmbtache.SetFocus
> >  ''Déroule la liste des tâches ''
> >  cmbtache.Dropdown

> > End Sub

> > --
> > Merci de votre aide

> > Leyley39

> Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> que la source de ta liste deroulante tache est bien un champs de cette
> 3 eme table ( pas le rowsource mais le recordsource )- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



donc si le champ "Act_pro a un record source( source ) basé sur ce
champs, je comprend pas le PB pk cela changerait si tu passes au 2 éme
enregistrement alors que l'enregistrement est fait puisse que tu
passes à l'enregistrement suivant .

Gilles
Avatar
Leyley39
En fait, lorsque je passe au deuxième enregistrement sur le formulaire
continu et que je sélectionne un nouvelle item dans le premier menu
déroulant, tous les deuxième menus déroulant de tous les enregistrements me
donne la liste en fonction du choix fait dans la première liste du 2e
enregistrement et efface mon premier enregistrement.

C'est difficile d'expliquer en mots ce qui arrivent, j'espère que je suis
assez clair.

Il y a sûrement u truc pour qu'il refasse le code sans tenir compte des
choix fait dans les enregistrements précédents.
--
Merci de votre aide

Leyley39


"gilles" a écrit :

On 2 sep, 09:58, Leyley39 wrote:
> Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
> enregistré mon choix dans le menu déroulant. Le premier menu déroulant doit
> être enregistré dans la 3e table "Activité Pro" dans le champ "Act_pro" et le
> deuxième menu s'enregistre aussi dans la même 3e table dans le champ
> "tache_pro"
> --
> Merci de votre aide
>
> Leyley39
>
> "gilles" a écrit :
>
>
>
> > On 1 sep, 16:25, Leyley39 wrote:
> > > Bonjour
>
> > > J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
> > > activité et un pour les différents tâches dans chaque activité). Je voudrais
> > > donc qu'en sélectionnant une activité, seule les tâche de ces activités
> > > s'affichent dans le deuxième menu déroulant.
>
> > > J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
> > > première table liste les type d'activité et la deuxième table liste les tâche
> > > en les affectant à une activité.
>
> > > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> > > choisi une activité, j'ai bien la liste des tâches de cette activité dans la
> > > deuxième liste. Le problème est que, si je vais sur une deuxième ligne
> > > d'enregistrement du formulaire continu et que je choisi une autre activité et
> > > une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> > > truc dans mon code.
>
> > > Quelqu'un peu m'aider ?
>
> > > Voici mon code :
>
> > > Private Sub cmbactivite_AfterUpdate()
> > > Dim IngIDCat As Long
> > > Dim SQL As String
>
> > > ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> > > If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> > > '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
> > > lngIDCat = Me!cmbactivite
> > > ''Construit la chaîne SQL avec l'activité concernée''
> > > SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> > > WHERE N°_LISTE_ACTIVITE =" & lngIDCat
>
> > > '' Affecte la chaîne SQL à la liste des tâches ''
> > > cmbtache.RowSource = SQL
> > > ''Déverrouille la liste des tâches ''
> > > cmbtache.Enabled = True
> > > '' Donne le focus la liste des tâches''
> > > cmbtache.SetFocus
> > > ''Déroule la liste des tâches ''
> > > cmbtache.Dropdown
>
> > > End Sub
>
> > > --
> > > Merci de votre aide
>
> > > Leyley39
>
> > Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> > que la source de ta liste deroulante tache est bien un champs de cette
> > 3 eme table ( pas le rowsource mais le recordsource )- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

donc si le champ "Act_pro a un record source( source ) basé sur ce
champs, je comprend pas le PB pk cela changerait si tu passes au 2 éme
enregistrement alors que l'enregistrement est fait puisse que tu
passes à l'enregistrement suivant .

Gilles



Avatar
Leyley39
Un truc que je viens de remarquer. Si je ferme mon formulaire et que je le
réouvre. Il a enregistré mes choix du deuxième menus de tous les
enregistrements. Mais si on fait un troisième enregistrement, il efface les
autres enregistrements sur le formulaire mais pas dans la table. C'est un peu
embêtant puisque ca donne l'impression de perdre les données.

Il y a peut être une ligne du code (que je comprends à moitié) qui lui dit
de remettre à 0 et que je pourrais enlever...????
--
Merci de votre aide

Leyley39


"gilles" a écrit :

On 2 sep, 09:58, Leyley39 wrote:
> Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
> enregistré mon choix dans le menu déroulant. Le premier menu déroulant doit
> être enregistré dans la 3e table "Activité Pro" dans le champ "Act_pro" et le
> deuxième menu s'enregistre aussi dans la même 3e table dans le champ
> "tache_pro"
> --
> Merci de votre aide
>
> Leyley39
>
> "gilles" a écrit :
>
>
>
> > On 1 sep, 16:25, Leyley39 wrote:
> > > Bonjour
>
> > > J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
> > > activité et un pour les différents tâches dans chaque activité). Je voudrais
> > > donc qu'en sélectionnant une activité, seule les tâche de ces activités
> > > s'affichent dans le deuxième menu déroulant.
>
> > > J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
> > > première table liste les type d'activité et la deuxième table liste les tâche
> > > en les affectant à une activité.
>
> > > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> > > choisi une activité, j'ai bien la liste des tâches de cette activité dans la
> > > deuxième liste. Le problème est que, si je vais sur une deuxième ligne
> > > d'enregistrement du formulaire continu et que je choisi une autre activité et
> > > une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> > > truc dans mon code.
>
> > > Quelqu'un peu m'aider ?
>
> > > Voici mon code :
>
> > > Private Sub cmbactivite_AfterUpdate()
> > > Dim IngIDCat As Long
> > > Dim SQL As String
>
> > > ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> > > If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> > > '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
> > > lngIDCat = Me!cmbactivite
> > > ''Construit la chaîne SQL avec l'activité concernée''
> > > SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> > > WHERE N°_LISTE_ACTIVITE =" & lngIDCat
>
> > > '' Affecte la chaîne SQL à la liste des tâches ''
> > > cmbtache.RowSource = SQL
> > > ''Déverrouille la liste des tâches ''
> > > cmbtache.Enabled = True
> > > '' Donne le focus la liste des tâches''
> > > cmbtache.SetFocus
> > > ''Déroule la liste des tâches ''
> > > cmbtache.Dropdown
>
> > > End Sub
>
> > > --
> > > Merci de votre aide
>
> > > Leyley39
>
> > Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> > que la source de ta liste deroulante tache est bien un champs de cette
> > 3 eme table ( pas le rowsource mais le recordsource )- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

donc si le champ "Act_pro a un record source( source ) basé sur ce
champs, je comprend pas le PB pk cela changerait si tu passes au 2 éme
enregistrement alors que l'enregistrement est fait puisse que tu
passes à l'enregistrement suivant .

Gilles



Avatar
gilles
On 2 sep, 12:37, Leyley39 wrote:
Un truc que je viens de remarquer. Si je ferme mon formulaire et que je l e
réouvre. Il a enregistré mes choix du deuxième menus de tous les
enregistrements. Mais si on fait un troisième enregistrement, il efface les
autres enregistrements sur le formulaire mais pas dans la table. C'est un peu
embêtant puisque ca donne l'impression de perdre les données.

Il y a peut être une ligne du code (que je comprends à moitié) qui lui dit
de remettre à 0 et que je pourrais enlever...????
--
Merci de votre aide

Leyley39

"gilles" a écrit :



> On 2 sep, 09:58, Leyley39 wrote:
> > Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
> > enregistré mon choix dans le menu déroulant. Le premier menu dé roulant doit
> > être enregistré dans la 3e table "Activité Pro" dans le champ " Act_pro" et le
> > deuxième menu s'enregistre aussi dans la même 3e table dans le ch amp
> > "tache_pro"
> > --
> > Merci de votre aide

> > Leyley39

> > "gilles" a écrit :

> > > On 1 sep, 16:25, Leyley39 wrot e:
> > > > Bonjour

> > > > J'ai créé un formulaire en continu avec deux menus déroulan ts (un pour des
> > > > activité et un pour les différents tâches dans chaque activ ité). Je voudrais
> > > > donc qu'en sélectionnant une activité, seule les tâche de c es activités
> > > > s'affichent dans le deuxième menu déroulant.

> > > > J'ai donc créé une table Liste_Activité et une table Liste_ Tâche. La
> > > > première table liste les type d'activité et la deuxième tab le liste les tâche
> > > > en les affectant à une activité.

> > > > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> > > > choisi une activité, j'ai bien la liste des tâches de cette a ctivité dans la
> > > > deuxième liste. Le problème est que, si je vais sur une deuxi ème ligne
> > > > d'enregistrement du formulaire continu et que je choisi une autre activité et
> > > > une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> > > > truc dans mon code.

> > > > Quelqu'un peu m'aider ?

> > > > Voici mon code :

> > > > Private Sub cmbactivite_AfterUpdate()
> > > > Dim IngIDCat As Long
> > > > Dim SQL As String

> > > >  ''Vérifie que l'on a cliqué sur une catégorie pour évi ter le Null''
> > > >  If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> > > >  '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable Ig nIDCat''
> > > >  lngIDCat = Me!cmbactivite
> > > >  ''Construit la chaîne SQL avec l'activité concernée''
> > > >  SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE F ROM LISTE_TACHE
> > > > WHERE N°_LISTE_ACTIVITE =" & lngIDCat

> > > >  '' Affecte la chaîne SQL à la liste des tâches ''
> > > >  cmbtache.RowSource = SQL
> > > >  ''Déverrouille la liste des tâches ''
> > > >  cmbtache.Enabled = True
> > > >  '' Donne le focus la liste des tâches''
> > > >  cmbtache.SetFocus
> > > >  ''Déroule la liste des tâches ''
> > > >  cmbtache.Dropdown

> > > > End Sub

> > > > --
> > > > Merci de votre aide

> > > > Leyley39

> > > Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> > > que la source de ta liste deroulante tache est bien un champs de ce tte
> > > 3 eme table ( pas le rowsource mais le recordsource )- Masquer le t exte des messages précédents -

> > - Afficher le texte des messages précédents -

> donc si le champ "Act_pro a un record source( source ) basé sur ce
> champs, je comprend pas le PB pk cela changerait si tu passes au 2 ém e
> enregistrement alors que l'enregistrement est fait puisse que tu
> passes à l'enregistrement suivant .

> Gilles- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



je pense toujours qu'il a un melanege entre la source ( record ) et le
contenu (rowsource) si lasource est le nom du champs de ta table il ne
peut pas enregistrer autre chose

ton code défini le contenu et uniquement le contenu avec

cmbtache.RowSource = Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE
FROM LISTE_TACHE WHERE N°_LISTE_ACTIVITE =" & lngIDCat

donc tu doit voir dans ton menu uniquement les valeurs triés par ce
sql mais cela veut pas dire que tu enregistres cette donnée


Gilles
Avatar
Leyley39
Je dois faire comment alors pour que le choix que je fait dans la liste trié
soit enregistré ?

J'ai un peu de mal à suivre avec Source et RowSource.

Que dois je modifier ?
--
Merci de votre aide

Leyley39


"gilles" a écrit :

On 2 sep, 12:37, Leyley39 wrote:
> Un truc que je viens de remarquer. Si je ferme mon formulaire et que je le
> réouvre. Il a enregistré mes choix du deuxième menus de tous les
> enregistrements. Mais si on fait un troisième enregistrement, il efface les
> autres enregistrements sur le formulaire mais pas dans la table. C'est un peu
> embêtant puisque ca donne l'impression de perdre les données.
>
> Il y a peut être une ligne du code (que je comprends à moitié) qui lui dit
> de remettre à 0 et que je pourrais enlever...????
> --
> Merci de votre aide
>
> Leyley39
>
> "gilles" a écrit :
>
>
>
> > On 2 sep, 09:58, Leyley39 wrote:
> > > Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
> > > enregistré mon choix dans le menu déroulant. Le premier menu déroulant doit
> > > être enregistré dans la 3e table "Activité Pro" dans le champ "Act_pro" et le
> > > deuxième menu s'enregistre aussi dans la même 3e table dans le champ
> > > "tache_pro"
> > > --
> > > Merci de votre aide
>
> > > Leyley39
>
> > > "gilles" a écrit :
>
> > > > On 1 sep, 16:25, Leyley39 wrote:
> > > > > Bonjour
>
> > > > > J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
> > > > > activité et un pour les différents tâches dans chaque activité). Je voudrais
> > > > > donc qu'en sélectionnant une activité, seule les tâche de ces activités
> > > > > s'affichent dans le deuxième menu déroulant.
>
> > > > > J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
> > > > > première table liste les type d'activité et la deuxième table liste les tâche
> > > > > en les affectant à une activité.
>
> > > > > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> > > > > choisi une activité, j'ai bien la liste des tâches de cette activité dans la
> > > > > deuxième liste. Le problème est que, si je vais sur une deuxième ligne
> > > > > d'enregistrement du formulaire continu et que je choisi une autre activité et
> > > > > une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> > > > > truc dans mon code.
>
> > > > > Quelqu'un peu m'aider ?
>
> > > > > Voici mon code :
>
> > > > > Private Sub cmbactivite_AfterUpdate()
> > > > > Dim IngIDCat As Long
> > > > > Dim SQL As String
>
> > > > > ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> > > > > If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> > > > > '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
> > > > > lngIDCat = Me!cmbactivite
> > > > > ''Construit la chaîne SQL avec l'activité concernée''
> > > > > SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> > > > > WHERE N°_LISTE_ACTIVITE =" & lngIDCat
>
> > > > > '' Affecte la chaîne SQL à la liste des tâches ''
> > > > > cmbtache.RowSource = SQL
> > > > > ''Déverrouille la liste des tâches ''
> > > > > cmbtache.Enabled = True
> > > > > '' Donne le focus la liste des tâches''
> > > > > cmbtache.SetFocus
> > > > > ''Déroule la liste des tâches ''
> > > > > cmbtache.Dropdown
>
> > > > > End Sub
>
> > > > > --
> > > > > Merci de votre aide
>
> > > > > Leyley39
>
> > > > Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> > > > que la source de ta liste deroulante tache est bien un champs de cette
> > > > 3 eme table ( pas le rowsource mais le recordsource )- Masquer le texte des messages précédents -
>
> > > - Afficher le texte des messages précédents -
>
> > donc si le champ "Act_pro a un record source( source ) basé sur ce
> > champs, je comprend pas le PB pk cela changerait si tu passes au 2 éme
> > enregistrement alors que l'enregistrement est fait puisse que tu
> > passes à l'enregistrement suivant .
>
> > Gilles- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

je pense toujours qu'il a un melanege entre la source ( record ) et le
contenu (rowsource) si lasource est le nom du champs de ta table il ne
peut pas enregistrer autre chose

ton code défini le contenu et uniquement le contenu avec

cmbtache.RowSource = Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE
FROM LISTE_TACHE WHERE N°_LISTE_ACTIVITE =" & lngIDCat

donc tu doit voir dans ton menu uniquement les valeurs triés par ce
sql mais cela veut pas dire que tu enregistres cette donnée


Gilles



Avatar
Leyley39
j'ai vérifié. Les choix que je fais dans les lenus sont bien enregistrés dans
la table. Mais ca reste embêtant de voir disparaître la ligne d'avant sur le
formulaire continu quand on fait un nouveau choix sur une deuxième ligne.
--
Merci de votre aide

Leyley39


"gilles" a écrit :

On 2 sep, 12:37, Leyley39 wrote:
> Un truc que je viens de remarquer. Si je ferme mon formulaire et que je le
> réouvre. Il a enregistré mes choix du deuxième menus de tous les
> enregistrements. Mais si on fait un troisième enregistrement, il efface les
> autres enregistrements sur le formulaire mais pas dans la table. C'est un peu
> embêtant puisque ca donne l'impression de perdre les données.
>
> Il y a peut être une ligne du code (que je comprends à moitié) qui lui dit
> de remettre à 0 et que je pourrais enlever...????
> --
> Merci de votre aide
>
> Leyley39
>
> "gilles" a écrit :
>
>
>
> > On 2 sep, 09:58, Leyley39 wrote:
> > > Si j'ai bien compris ce que tu me demandes, c'est l'endroit où doit être
> > > enregistré mon choix dans le menu déroulant. Le premier menu déroulant doit
> > > être enregistré dans la 3e table "Activité Pro" dans le champ "Act_pro" et le
> > > deuxième menu s'enregistre aussi dans la même 3e table dans le champ
> > > "tache_pro"
> > > --
> > > Merci de votre aide
>
> > > Leyley39
>
> > > "gilles" a écrit :
>
> > > > On 1 sep, 16:25, Leyley39 wrote:
> > > > > Bonjour
>
> > > > > J'ai créé un formulaire en continu avec deux menus déroulants (un pour des
> > > > > activité et un pour les différents tâches dans chaque activité). Je voudrais
> > > > > donc qu'en sélectionnant une activité, seule les tâche de ces activités
> > > > > s'affichent dans le deuxième menu déroulant.
>
> > > > > J'ai donc créé une table Liste_Activité et une table Liste_Tâche. La
> > > > > première table liste les type d'activité et la deuxième table liste les tâche
> > > > > en les affectant à une activité.
>
> > > > > J'ai trouvé ce code sur un site que j'ai adapté pour ma base. Lorsque je
> > > > > choisi une activité, j'ai bien la liste des tâches de cette activité dans la
> > > > > deuxième liste. Le problème est que, si je vais sur une deuxième ligne
> > > > > d'enregistrement du formulaire continu et que je choisi une autre activité et
> > > > > une autre tâche, la tâche de la première ligne s'efface. Il doit manquer un
> > > > > truc dans mon code.
>
> > > > > Quelqu'un peu m'aider ?
>
> > > > > Voici mon code :
>
> > > > > Private Sub cmbactivite_AfterUpdate()
> > > > > Dim IngIDCat As Long
> > > > > Dim SQL As String
>
> > > > > ''Vérifie que l'on a cliqué sur une catégorie pour éviter le Null''
> > > > > If Not IsNumeric(Me!cmbactivite) Then Exit Sub
> > > > > '' Affecte la valeur de N°_LISTE_ACTIVITE à la variable IgnIDCat''
> > > > > lngIDCat = Me!cmbactivite
> > > > > ''Construit la chaîne SQL avec l'activité concernée''
> > > > > SQL = "Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE FROM LISTE_TACHE
> > > > > WHERE N°_LISTE_ACTIVITE =" & lngIDCat
>
> > > > > '' Affecte la chaîne SQL à la liste des tâches ''
> > > > > cmbtache.RowSource = SQL
> > > > > ''Déverrouille la liste des tâches ''
> > > > > cmbtache.Enabled = True
> > > > > '' Donne le focus la liste des tâches''
> > > > > cmbtache.SetFocus
> > > > > ''Déroule la liste des tâches ''
> > > > > cmbtache.Dropdown
>
> > > > > End Sub
>
> > > > > --
> > > > > Merci de votre aide
>
> > > > > Leyley39
>
> > > > Ton formulaire est basé je suppose sur une 3 éme table . Alors est ce
> > > > que la source de ta liste deroulante tache est bien un champs de cette
> > > > 3 eme table ( pas le rowsource mais le recordsource )- Masquer le texte des messages précédents -
>
> > > - Afficher le texte des messages précédents -
>
> > donc si le champ "Act_pro a un record source( source ) basé sur ce
> > champs, je comprend pas le PB pk cela changerait si tu passes au 2 éme
> > enregistrement alors que l'enregistrement est fait puisse que tu
> > passes à l'enregistrement suivant .
>
> > Gilles- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -

je pense toujours qu'il a un melanege entre la source ( record ) et le
contenu (rowsource) si lasource est le nom du champs de ta table il ne
peut pas enregistrer autre chose

ton code défini le contenu et uniquement le contenu avec

cmbtache.RowSource = Select N°_LISTE_TACHE, TACHE, N°_LISTE_ACTIVITE
FROM LISTE_TACHE WHERE N°_LISTE_ACTIVITE =" & lngIDCat

donc tu doit voir dans ton menu uniquement les valeurs triés par ce
sql mais cela veut pas dire que tu enregistres cette donnée


Gilles