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

selection multiple

2 réponses
Avatar
Bauwens François
Bonjour,

je dois faire une base de données qui, pour moi, est complexe.
Une table "organisateur" avec une multitude de détails (pas de prob)
Une table "projets" avec une foultitude de détails et pour certains je dois
pouvoir selectionner plusieurs items. Prenons 2 champs "thèmes" et "mode
d'expression" qui chacun peuvent accueillir plusieurs choix. (c'est donc ici
que ce situe le problème)
J'ai des tables pour la liste des divers items.

Est-il possible de réaliser l'opération directement en access ?

Sinon en vb y a-t-il un endroit qui propose des solutions j'ai cherché sur
le net mais je ne trouve pas vraiment ma réponse.
Pour le moment j'ai un système qui ne fonctionne pas totalement et que je
trouve assez compliqué (quelqu'un me la pondu ma n'est pas allé jusqu'au
bout) j'ai tenté de repartir de là mais...
A chaque thème est attribué une valeur "true" ou "false", on fait varier
cette valeur pour pouvoir ensuite récupérer par requête les éléments. Ca ne
marche pas top. Et ensuite il faudrait que lorsque je reviens sur mon
organisateur il me signale les thèmes sélectionné.

voici une partie du code

Private Sub Available_DblClick(Cancel As Integer)
Dim CurDB As Database, Rs As Recordset, SQLStmt As String
Set CurDB = CurrentDb()
SQLStmt = "SELECT * FROM [States] WHERE [Numkey] = " & Me![Available]
Set Rs = CurDB.OpenRecordset(SQLStmt, DB_OPEN_DYNASET)
Rs.Edit
Rs("Selected") = True
Rs.Update
Rs.Close
Me!Available.Requery
Me!Selected.Requery
[SQ Requ Combi sous-formulaire].Requery


je peux vous envoyé la base test si vous voulez. Merci pour votre aide

--
Cordialement,

François Bauwens

2 réponses

Avatar
Thierry (ze Titi)
Hello François !

Ca n'est pas dans VB qu'il faut chercher la solution, mais dans la
strucutre de ta base.
Il ne faut pas lier tes items directement, il te faut passer par une
table intermédiaire qui contiendra l'identifiant du projet et l'(les)
identifiant(s) de l'(des) item(s) sélectionné(s).

T_Projets (ID_Projet, champ1, champ2, etc...)
T_Items (ID_Item, champ1, champ2, etc...)
T_Projets_Items (ID, ID_Projet, ID_Item)

Dans ton formulaire d'affichage des projets, cette liste d'items se
traduira (par exemple) par un sous-formulaire basé sur la table
T_Projets_Items dont les champs père et fils seront l'ID_Projet.

je dois faire une base de données qui, pour moi, est complexe.
Une table "organisateur" avec une multitude de détails (pas de prob)
Une table "projets" avec une foultitude de détails et pour certains je dois
pouvoir selectionner plusieurs items. Prenons 2 champs "thèmes" et "mode
d'expression" qui chacun peuvent accueillir plusieurs choix. (c'est donc ici
que ce situe le problème)
J'ai des tables pour la liste des divers items.

Est-il possible de réaliser l'opération directement en access ?

Sinon en vb y a-t-il un endroit qui propose des solutions j'ai cherché sur
le net mais je ne trouve pas vraiment ma réponse.
Pour le moment j'ai un système qui ne fonctionne pas totalement et que je
trouve assez compliqué (quelqu'un me la pondu ma n'est pas allé jusqu'au
bout) j'ai tenté de repartir de là mais...
A chaque thème est attribué une valeur "true" ou "false", on fait varier
cette valeur pour pouvoir ensuite récupérer par requête les éléments. Ca ne
marche pas top. Et ensuite il faudrait que lorsque je reviens sur mon
organisateur il me signale les thèmes sélectionné.

voici une partie du code

Private Sub Available_DblClick(Cancel As Integer)
Dim CurDB As Database, Rs As Recordset, SQLStmt As String
Set CurDB = CurrentDb()
SQLStmt = "SELECT * FROM [States] WHERE [Numkey] = " & Me![Available]
Set Rs = CurDB.OpenRecordset(SQLStmt, DB_OPEN_DYNASET)
Rs.Edit
Rs("Selected") = True
Rs.Update
Rs.Close
Me!Available.Requery
Me!Selected.Requery
[SQ Requ Combi sous-formulaire].Requery


je peux vous envoyé la base test si vous voulez. Merci pour votre aide


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Bauwens François
Salut Thierry et merci pour ta réponse.

J'ai bien cette table (bien que ta remarque m'ait fait progresser sur la
question), maisle problème c'est de parvenir à faire une zone de selection
multiple. Avec la formule que tu me proposes j'ai un sous-formulaire avec
des listes déroulantes. Est-il possible de le transformer en zone de choix
multiple ? C'est ça pour moi le défi arriver à une liste complète dans
laquelle on selectionne par double click et qui quand on revient dessus
affiche les éléments selectionnés en surligné.


"Thierry (ze Titi)" a écrit dans le
message de news:
Hello François !

Ca n'est pas dans VB qu'il faut chercher la solution, mais dans la
strucutre de ta base.
Il ne faut pas lier tes items directement, il te faut passer par une
table intermédiaire qui contiendra l'identifiant du projet et l'(les)
identifiant(s) de l'(des) item(s) sélectionné(s).

T_Projets (ID_Projet, champ1, champ2, etc...)
T_Items (ID_Item, champ1, champ2, etc...)
T_Projets_Items (ID, ID_Projet, ID_Item)

Dans ton formulaire d'affichage des projets, cette liste d'items se
traduira (par exemple) par un sous-formulaire basé sur la table
T_Projets_Items dont les champs père et fils seront l'ID_Projet.

je dois faire une base de données qui, pour moi, est complexe.
Une table "organisateur" avec une multitude de détails (pas de prob)
Une table "projets" avec une foultitude de détails et pour certains je
dois


pouvoir selectionner plusieurs items. Prenons 2 champs "thèmes" et "mode
d'expression" qui chacun peuvent accueillir plusieurs choix. (c'est donc
ici


que ce situe le problème)
J'ai des tables pour la liste des divers items.

Est-il possible de réaliser l'opération directement en access ?

Sinon en vb y a-t-il un endroit qui propose des solutions j'ai cherché
sur


le net mais je ne trouve pas vraiment ma réponse.
Pour le moment j'ai un système qui ne fonctionne pas totalement et que
je


trouve assez compliqué (quelqu'un me la pondu ma n'est pas allé jusqu'au
bout) j'ai tenté de repartir de là mais...
A chaque thème est attribué une valeur "true" ou "false", on fait varier
cette valeur pour pouvoir ensuite récupérer par requête les éléments. Ca
ne


marche pas top. Et ensuite il faudrait que lorsque je reviens sur mon
organisateur il me signale les thèmes sélectionné.

voici une partie du code

Private Sub Available_DblClick(Cancel As Integer)
Dim CurDB As Database, Rs As Recordset, SQLStmt As String
Set CurDB = CurrentDb()
SQLStmt = "SELECT * FROM [States] WHERE [Numkey] = " & Me![Available]
Set Rs = CurDB.OpenRecordset(SQLStmt, DB_OPEN_DYNASET)
Rs.Edit
Rs("Selected") = True
Rs.Update
Rs.Close
Me!Available.Requery
Me!Selected.Requery
[SQ Requ Combi sous-formulaire].Requery


je peux vous envoyé la base test si vous voulez. Merci pour votre aide


--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info