Entrer une valeur dans une table qui récupère une valeur d'une autre table

niano Messages postés 9 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 19 septembre 2008 - 18 juil. 2007 à 13:35
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 19 juil. 2007 à 19:06
Bonjour à toutes et à tous,

Je poste sur ce forum car j'ai un petit soucis et je vais essayer d'être le plus clair possible.

J'utilise Visual C# et une base de données Access. Mon but est de créer une sorte de formulaire qui me permet de rentrer des informations dans la base de données.

J'ai 3 tables dans ma base de données:
- une table "Ado" ("idAdo1" (autoincrémenté) et "Prenom" pour colonne)
- une table "PersonneQuiRecoit" ("TypeDePersonne1" avec 7 choix possibles)
- une table de liaison entre les deux "AdoPersonneQuiRecoit" ("idAdo2" et "TypeDePersonne2" pour les colonnes).

J'ai crée cette table de liaison parce que l'adolescent reçu peut l'être par plusieurs type de personne. Dans mon formulaire je rentre simplement le nom de l'adolescent et je voudrais sélectionner les type de personnes qui le reçoivent. Pour ça, j'ai crée une ListBox à choix multiple: lorsque je choisi 5 personnes, je voudrais que 5 lignes se créent dans la table "AdoPersonneQuiRecoit" et une ligne dans la table "Ado". Exemple: (ce sont les lignes des tables)

"Ado" -> 1 - Simon
               2 - Bernardo
"AdoPersonneQuiRecoit" -> 1 - Accompagnant social
                                            1 - Psychologue
                                            1 - Psychiatre
                                            2 - Accompagnant social
                                            2 - Psychiatre

Mon problème est que lorsque je choisi mes type de personne, rien ne se crée dans la table "AdoPersonneQuiRecoit", il ne récupère pas le "idAdo1" alors que les liaisons sont bien faites.

Je n'ai pas de code pour tout ceci, j'utilise entièrement l'interface "formulaire" de visual c# (il suffit d'utiliser les glisser déposer et comme je suis nul en code, ça me va très bien).

Pour l'instant, j'arrive à afficher la liste des types de personne, mais j'arrive pas a ajouter de "controle" qui permettrait d'ajouter les lignes dans "AdoPersonneQuiRecoit" combinant le type de personne et le "idAdo1" correspondant au prénom que j'ai rentré dans mon formulaire.

Voilà, j'ai essayé d'être le plus clair possible. Je remercie toutes les personne qui auront le courage de se pencher sur mon problème.

4 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
18 juil. 2007 à 20:03
salut,

ben, à priori, faut que tu le fasses à la main dans du code :
-> tu mets un bouton
-> tu mets un truc du genre :
for (int =0;i < ta_list.items.count;i++)
{
if (ta_list.selected == true)
{
datarow dr = ta_table_de_ton_dataset.newrow()
dr("idado1") = ton_ado
dr("recupar")=ta_list.items(i).selectedvalue;
}
}

ShareVB
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
18 juil. 2007 à 20:04
salut,

euh, plutot :
for (int =0;i < ta_list.items.count;i++)
{
if (ta_list.selected == true)
{
datarow dr = ta_table_de_ton_dataset.newrow()
dr("idado1") = ton_ado
dr("recupar")=ta_list.items(i).selectedvalue;
ta_table_de_ton_dataset.rows.Add(dr)
}
}
ton_dataadapter.update( ta_table_de_ton_dataset)

ShareVB
0
niano Messages postés 9 Date d'inscription mardi 17 juillet 2007 Statut Membre Dernière intervention 19 septembre 2008
19 juil. 2007 à 10:46
Salut,

Je vois ce que tu veux faire mais le soucis c'est que je suis en train de faire un formulaire. Sur ce formulaire, il y a des boutons de navigation qui me permettent de passer d'un enregistrement à un autre (quand je suis sur l'entrée "1", je vois le prénom de cette entrée qui apparait (exemple: "Simon"), je clique vers la droite et le prénom change pour m'afficher celui de la deuxième entrée ("Bernardo"): ce qui est bien pratique pour voir les informations que l'on a rentré...).

Mon problème c'est que je ne suis pas sur qu'avec ta solution je pourrais toujours utiliser cette navigation aisée. Si tu penses que c'est bon, alors je vais essayer mais je ne comprends pas tout à ton code.

"ta_liste" -> c'est quoi exactement ? Ma liste n'a pas de nom (enfin à priori).
"recupar" -> je n'ai pas bien compris ce que c'était...

Merci de t'être penché dessus, je vais continuer à chercher de mon coté.
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
19 juil. 2007 à 19:06
salut,

je suppose que tu utilises un dataset et une bindingsource pour remplir ton listbox et naviguer dans les ados... pour la navigation tu peux utiliser un bindingnavigator...

je reprend le code :
//pour chaque ligne de ta listbox (elle porte forcément un nom)
for (int =0;i < ta_list.items.count;i++)
{
//si la ligne est sélectionnée, alors ajouter une ligne dans la table de liaision
if (ta_list.selected == true)
{

datarow dr = ton_dataset.tables("AdoPersonneQuiRecoit").newrow()
dr("idado2") = ton_ado
dr("TypeDePersonne2")=ta_list.items(i).selectedvalue;
ton_dataset.tables("AdoPersonneQuiRecoit").rows.Add(dr)
}
}
//tu mets à jour ton dataset dans la base

ShareVB
0
Rejoignez-nous