Bonjour,

J'ai une application avec une base access contenant deux tables (pour simplifier)
TblVehicule (Id, Immatriculation, .... Id_TblMarque)
TblMarque (Id, Marque)

Au chargement de mon formulaire, je charge les deux tables dans un DataSet déclaré en Private du formulaire.
Dans le formulaire, j'ai un DataGridView dans lequel j'affiche la table TblVehicule.
Seulement la colonne ID_TblMarque affiche une valeur numérique et non la marque corrspondante. Jusque là je comprend l'erreur.
J'ai donc recherché du côté des DataRelations et j'ai créé une relation ParentEnfant.

(J'ai développé mon application avec une architecture 3 couches (Sa m'a pris du temps, mais c'est rudement appréciable !! ).
ClMarque est ma classe représentant les Marques,
ClVehicule est ma classe représentant les Vehicules, ....
Cette partie fonctionne bien, les tables sont chargées correctement, les noms des colonnes sont repris ....
dans la table TblVehicule, la colonne Id_TblMarque,de la table de la base Access, est renommé Marque)


Le code créant la relation
Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Private Sub TestRelationTable()
 
        ' Ajout de la table Vehicule
        ' Table chargée au chargement du formulaire
        ' Existe bien dans le DataSet
 
        ' Ajout de la table Marque
        clMarque.ChargerTs(objDataSet)
 
        ' Réalisation de la relation
        Dim ColParentMarque As DataColumn
        ColParentMarque = objDataSet.Tables("TblMarque").Columns("ID_Marque")
 
        Dim ColEnfantVehicule As DataColumn
        ' "Marque" représente Id_TblMarque, colonne renommée
        ColEnfantVehicule = objDataSet.Tables("TblVehicule").Columns("Marque")
 
        Dim RelationParentEnfant As DataRelation
        RelationParentEnfant = New DataRelation("relMarqueVehicule", ColParentMarque, ColEnfantVehicule)
 
        objDataSet.Relations.Add(RelationParentEnfant)
 
        Me.dgvVehicule.DataSource = objDataSet.Tables("TblVehicule")
 
    End Sub

Après l'exécution du code la colonne Marque contient toujours les valeurs numériques....

D'ou vient le problème ?

Merci du coup de main

Gwendal