Bonjour à tous,
C'est la première fois que je poste une question sur ce forum. D'habitude, à force de chercher des solutions sur internet je trouve mon bonheur, mais là ... impossible.
Voici mon problème :
A l'ouverture de ma form, je charge 4 tables access dans mon DataSet :

Code : 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Public Class Frm_Salarié_EtatCivil
    Private MaConnexionSalariés As New OleDbConnection
    Private MaCommandBuilderSalariés As New OleDbCommandBuilder
    Private MonDataAptaterSalariés As New OleDbDataAdapter
    Private MonDataSetSalariés As New DataSet
    Private sqlSalariés As String
 
    Private Sub Frm_Salarié_EtatCivil_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        'Alimente le nouveau DataSet avec les tables Tbl_Salariés, Tbl_Salariés_TitreSéjour, Ref_TitreSéjour et Tbl_Salariés_Agréments
        MaConnexionSalariés = New OleDbConnection(MaConnexionString)
        MaConnexionSalariés.Open()
 
        MaCommandBuilderSalariés = New OleDbCommandBuilder(MonDataAptaterSalariés)
        MonDataAptaterSalariés = New OleDbDataAdapter("SELECT * FROM Tbl_Salariés WHERE Id_Salarié=4", MaConnexionSalariés)
        MonDataAptaterSalariés.Fill(MonDataSetSalariés, "Tbl_Salariés")
        MaCommandBuilderSalariés.RefreshSchema()
 
        MonDataAptaterSalariés = New OleDbDataAdapter("SELECT * FROM Tbl_Salariés_TitreSéjour WHERE Id_Salarié=4", MaConnexionSalariés)
        MonDataAptaterSalariés.Fill(MonDataSetSalariés, "Tbl_Salariés_TitreSéjour")
        MaCommandBuilderSalariés.RefreshSchema()
        MonDataAptaterSalariés = New OleDbDataAdapter("SELECT * FROM Ref_TitreSéjour", MaConnexionSalariés)
        MonDataAptaterSalariés.Fill(MonDataSetSalariés, "Ref_TitreSéjour")
        MaCommandBuilderSalariés.RefreshSchema()
 
        MonDataAptaterSalariés = New OleDbDataAdapter("SELECT * FROM Tbl_Salariés_Agréments WHERE Id_Salarié=4", MaConnexionSalariés)
        MonDataAptaterSalariés.Fill(MonDataSetSalariés, "Tbl_Salariés_Agréments")
        MaCommandBuilderSalariés.RefreshSchema()
    End Sub
 
'En cliquant sur un bouton, je veux qu'il m'ajoute une ligne dans la table Tbl_Salariés_TitreSéjour :
    Private Sub Btn_AjoutTitre_Click(sender As Object, e As EventArgs) Handles Btn_AjoutTitre.Click
            Dim cb As New OleDb.OleDbCommandBuilder(MonDataAptaterSalariés)
            Dim dr As DataRow = MonDataSetSalariés.Tables("Tbl_Salariés_TitreSéjour").NewRow
            dr("Id_TitreSéjour") = DMax("Id_TitreSéjour", "Tbl_Salariés_TitreSéjour") + 1
            dr("Id_Salarié") = 4
            dr("TitreSéjour_Type") = Form_TitreSéjour.Controls("Fld_TitreSéjour_Type").Text
            dr("TitreSéjour_Numéro") = Form_TitreSéjour.Controls("Fld_TitreSéjour_Numéro").Text
            dr("TitreSéjour_DateDébut") = Form_TitreSéjour.Controls("Fld_TitreSéjour_DateDébut").Text
            dr("TitreSéjour_DateFin") = Form_TitreSéjour.Controls("Fld_TitreSéjour_DateFin").Text
            MonDataSetSalariés.Tables("Tbl_Salariés_TitreSéjour").Rows.Add(dr)
            cb.GetUpdateCommand()
            MonDataAptaterSalariés.Update(MonDataSetSalariés, "Tbl_Salariés_TitreSéjour")
    End Sub
End Class
1ière question : Le click sur le bouton ajoute bien ma ligne dans ma Datatable mais pas dans Access
2ième question : si j'ajoute la dernière ligne (MonDataAptaterSalariés.Update(MonDataSetSalariés, "Tbl_Salariés_TitreSéjour")), le debug bloque sur celle-ci en affichant le message "DataColumn 'Agrément_Numéro' manquant dans DataTable 'Tbl_Salariés_TitreSéjour' pour SourceColumn 'Agrément_Numéro'"
Ce que je ne comprends pas c'est que 'Agrément_Numéro' ne fait pas partie de la Datatable "Tbl_Salariés_TitreSéjour" de mais de la Datatable "Tbl_Salariés_Agréments"

Merci à vous de bien vouloir m'aider