Enregistrement d'un datatable dans Access
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:
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