Bonjour,

Je suis en train d'essayer d'utiliser correctement une bdd relationnelle access avec ADO.net. (j'utilise vb.net).

Voici mes deux tables pour exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TableAgenda
CléPersonne (clé numéroAuto)
Nom (String)
Prénom (String)

TablePersonne
Id (clé auto)
CléPersonne
Tel
Date de naissance
Adresse

La relation est de type 1->Ѡ
A - Tout faire par l'interface graphique de Visual Studio Express

1 - J'importe ma base de donnée
2 - L'assistant me créé un DataSet
3 - Je place un DatagridView et je suis indique la table TablePersonne. Le binding est créé automatiquement.
4 - J'incorpore une ComboBox.

Je souhaite lier ce comboBox à la table TableAgenda et y afficher le nom. Quand le nom est sélectionné, CléPersonne est récupérer et le datagridview m'affiche la ligne ayant la même clépersonne.

5 - Sur la comboBox, je sélectionne "utiliser les éléments liés au données"
6 - Une fenêtre s'affiche et je dois renseigner :
A - Source de données - Donc la table TableAgenda
B - Afficher le Membre - je choisis d'afficher la colonne Nom
C - Membre Value - Je suppose que je dois mettre CléPersonne ?
D - Valeur Selectionnée - Je suppose que je dois mettre CléPersonne de la TablePersonne ?

Mais la j'ai essayé pas mal de chose et je n'arrive pas à avoir un comportement qui correspond à mes attentes.

B - Par le code

Bon la idem, je créé tout à la main, mon dataset, mes bindingsource. Je rempli mon datagridview et ma combobox. Mais je ne vois pas comment tirer parti du fait que ma bdd soit relationnelle pour simplifier mes tri.


Si je ne peux pas tirer parti des relations entre les tables, autant utiliser la redondance dans mes tables, ça m'évitera du traitement. De cette manière, pour mon exemple, j'aurais alors :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
TableAgenda
id (clé auto)
Nom (String)
Prénom (String)

TablePersonne
Id (clé auto)
Nom
Prénom
CléPersonne
Tel
Date de naissance
Adresse
Autant faire une seule table :p . Bon l'exemple n'est pas trop bien choisi...

Merci pour le coup de main.