Public Class Main Dim currentrow As Integer 'Variable pour la ligne courante Dim MaxRows As Integer 'Variable pour nombre de lignes Dim con As New OleDb.OleDbConnection 'Variable de connection a la base Dim dbProvider As String 'Variable type de Base Dim dbSource As String 'Variable chemin Base Dim ds As New DataSet 'DataSet Dim da As OleDb.OleDbDataAdapter 'DataAdapter Dim sql As String 'Requete Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Definition du type de base dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;" 'Chemin de la base dbSource "Data Source C:\Users\Biggy\Documents\Visual Studio 2010\Projects\GenBase\GenBase\gen.accdb" 'Connection con.ConnectionString = dbProvider & dbSource 'Ouverture de la connection (base) con.Open() 'Message de Bienvenue MsgBox("BIENVENUE DANS GENBASE !" & vbCrLf & vbCrLf & "Une Base Modèle à été créé pour vous !" & vbCrLf & "Base de données connecter !" & vbCrLf & "Vous pouvez maintenant entrer vos données !" & vbCrLf & "Vous pourez réenregistrer cette Base sous un autre nom à partir du menu Fichier.") 'Requete SQL sql = "SELECT * FROM Individu" 'Definition et commande de remplissage du DataAdapter da = New OleDb.OleDbDataAdapter(sql, con) da.Fill(ds, "gen") 'Positionnement dans la base currentrow = 0 'Definition du nombre de ligne dans la base MaxRows = ds.Tables("gen").Rows.Count End Sub Private Sub NavigateRecords() 'Procedure de Naviguation dans la base (execute avec les boutons) 'Changement des couleur de fond selon le sexe (M/Bleu, F/Rose, I/Vert) If ds.Tables("gen").Rows(currentrow).Item(3) = ("Féminin") Then TabPage1.BackColor = Color.Purple TabPage2.BackColor = Color.DarkBlue ElseIf ds.Tables("gen").Rows(currentrow).Item(3) = ("Masculin") Then TabPage1.BackColor = Color.DarkBlue TabPage2.BackColor = Color.Purple ElseIf ds.Tables("gen").Rows(currentrow).Item(3) = ("Inconnu") Then TabPage1.BackColor = Color.DarkGreen TabPage2.BackColor = Color.DarkGreen ElseIf sexe.Text = ("") Then sexe.Text = ("") TabPage1.BackColor = Color.DarkGreen TabPage2.BackColor = Color.DarkGreen End If 'Insertion des champs et des ligne dans les controles 'Individu Nom.Text = ds.Tables("gen").Rows(currentrow).Item(1) Prenom.Text = ds.Tables("gen").Rows(currentrow).Item(2) sexe.Text = ds.Tables("gen").Rows(currentrow).Item(3) datenai.Text = ds.Tables("gen").Rows(currentrow).Item(4) lieunai.Text = ds.Tables("gen").Rows(currentrow).Item(5) datedec.Text = ds.Tables("gen").Rows(currentrow).Item(6) lieudec.Text = ds.Tables("gen").Rows(currentrow).Item(7) prof.Text = ds.Tables("gen").Rows(currentrow).Item(8) cause.Text = ds.Tables("gen").Rows(currentrow).Item(9) pere.Text = ds.Tables("gen").Rows(currentrow).Item(10) mere.Text = ds.Tables("gen").Rows(currentrow).Item(11) 'Unions nommar1.Text = ds.Tables("gen").Rows(currentrow).Item(12) prenommar1.Text = ds.Tables("gen").Rows(currentrow).Item(13) datemar1.Text = ds.Tables("gen").Rows(currentrow).Item(14) lieumar1.Text = ds.Tables("gen").Rows(currentrow).Item(15) nommar2.Text = ds.Tables("gen").Rows(currentrow).Item(16) prenommar2.Text = ds.Tables("gen").Rows(currentrow).Item(17) datemar2.Text = ds.Tables("gen").Rows(currentrow).Item(18) lieumar2.Text = ds.Tables("gen").Rows(currentrow).Item(19) nommar3.Text = ds.Tables("gen").Rows(currentrow).Item(20) prenommar3.Text = ds.Tables("gen").Rows(currentrow).Item(21) datemar3.Text = ds.Tables("gen").Rows(currentrow).Item(22) lieumar3.Text = ds.Tables("gen").Rows(currentrow).Item(23) 'Enfants E1.Text = ds.Tables("gen").Rows(currentrow).Item(24) E2.Text = ds.Tables("gen").Rows(currentrow).Item(25) E3.Text = ds.Tables("gen").Rows(currentrow).Item(26) E4.Text = ds.Tables("gen").Rows(currentrow).Item(27) E5.Text = ds.Tables("gen").Rows(currentrow).Item(28) E6.Text = ds.Tables("gen").Rows(currentrow).Item(29) E7.Text = ds.Tables("gen").Rows(currentrow).Item(30) E8.Text = ds.Tables("gen").Rows(currentrow).Item(31) E9.Text = ds.Tables("gen").Rows(currentrow).Item(32) E10.Text = ds.Tables("gen").Rows(currentrow).Item(33) E11.Text = ds.Tables("gen").Rows(currentrow).Item(34) E12.Text = ds.Tables("gen").Rows(currentrow).Item(35) E13.Text = ds.Tables("gen").Rows(currentrow).Item(36) E14.Text = ds.Tables("gen").Rows(currentrow).Item(37) E15.Text = ds.Tables("gen").Rows(currentrow).Item(38) E16.Text = ds.Tables("gen").Rows(currentrow).Item(39) E17.Text = ds.Tables("gen").Rows(currentrow).Item(40) E18.Text = ds.Tables("gen").Rows(currentrow).Item(41) E19.Text = ds.Tables("gen").Rows(currentrow).Item(42) E20.Text = ds.Tables("gen").Rows(currentrow).Item(43) 'A definir: procedure d'affichage pour enfant de union 2 (item 44 a 63) & union 3 (item 64 a 83) Ici et plus bas a trois endroits (le meme commentaire) je doit implemeter un code que je décris plus bas 'Notes historique.Text = ds.Tables("gen").Rows(currentrow).Item(84) RTFnote1.Text = ds.Tables("gen").Rows(currentrow).Item(85) RTFnote2.Text = ds.Tables("gen").Rows(currentrow).Item(86) RTFnote3.Text = ds.Tables("gen").Rows(currentrow).Item(87) RTFnote4.Text = ds.Tables("gen").Rows(currentrow).Item(88) RTFnote5.Text = ds.Tables("gen").Rows(currentrow).Item(89) RTFnote6.Text = ds.Tables("gen").Rows(currentrow).Item(90) RTFnote7.Text = ds.Tables("gen").Rows(currentrow).Item(91) RTFnote8.Text = ds.Tables("gen").Rows(currentrow).Item(92) RTFnote9.Text = ds.Tables("gen").Rows(currentrow).Item(93) RTFnote10.Text = ds.Tables("gen").Rows(currentrow).Item(94) 'Insertion des unions (conjoints) dans le combobox de l'onglet Enfants unions.Items(0) = ds.Tables("gen").Rows(currentrow).Item(12) & " " & ds.Tables("gen").Rows(currentrow).Item(13) unions.Items(1) = ds.Tables("gen").Rows(currentrow).Item(16) & " " & ds.Tables("gen").Rows(currentrow).Item(17) unions.Items(2) = ds.Tables("gen").Rows(currentrow).Item(20) & " " & ds.Tables("gen").Rows(currentrow).Item(21) End Sub Private Sub btnNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNext.Click 'Bouton Suivant 'On verifie qu'il y aie toujours des donnees a afficher... If currentrow < ds.Tables("gen").Rows.Count - 1 Then currentrow += 1 '...Puis on les affiche avec la procedure: NavigateRecords() Else 'Sinon on est au bout de la base.... MsgBox("Dernier Individu de la Base !" & vbCrLf & ds.Tables("gen").Rows.Count & " " & "Individus dans la Base.") End If End Sub Private Sub btnPrevious_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrevious.Click 'Bouton Precedent 'On verifie qu'il y aie toujours des donnees a afficher... If currentrow > 0 Then currentrow -= 1 '...Puis on les affiche avec la procedure: NavigateRecords() 'Sinon on est au debut de la base.... ElseIf currentrow = 0 Then MsgBox("Premier Individu de la Base !") End If End Sub Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click 'Bouton Dernier Individu 'On verifie sur la derniere rangee (Rows.Count -1) currentrow = ds.Tables("gen").Rows.Count - 1 'Puis on l'affiche avec la procedure: NavigateRecords() End Sub Private Sub btnFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFirst.Click 'Bouton Premier Individu 'On se place sur la premiere rangee currentrow = 0 'Puis on l'affiche avec la procedure: NavigateRecords() End Sub Private Sub btnAddNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddNew.Click 'Bouton Ajouter Individu 'On choisi les bouton a afficher (permettre ou non le click) btnCommit.Enabled = True btnAddNew.Enabled = False btnDelete.Enabled = False 'On vide les controles 'Fiche Individu Nom.Clear() Prenom.Clear() sexe.Clear() datenai.Clear() lieunai.Clear() datedec.Clear() lieudec.Clear() prof.Clear() cause.Clear() pere.Clear() mere.Clear() 'Fiche Unions nommar1.Clear() prenommar1.Clear() datemar1.Clear() lieumar1.Clear() nommar2.Clear() prenommar2.Clear() datemar2.Clear() lieumar2.Clear() nommar3.Clear() prenommar3.Clear() datemar3.Clear() lieumar3.Clear() unions.Items.Clear() 'Fiche Enfants E1.Clear() E2.Clear() E3.Clear() E4.Clear() E5.Clear() E6.Clear() E7.Clear() E8.Clear() E9.Clear() E10.Clear() E11.Clear() E12.Clear() E13.Clear() E14.Clear() E15.Clear() E16.Clear() E17.Clear() E18.Clear() E19.Clear() E20.Clear() 'Fiche Notes historique.Clear() RTFnote1.Clear() RTFnote2.Clear() RTFnote3.Clear() RTFnote4.Clear() RTFnote5.Clear() RTFnote6.Clear() RTFnote7.Clear() RTFnote8.Clear() RTFnote9.Clear() RTFnote10.Clear() End Sub Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click 'Bouton Annuler 'On choisi les bouton a afficher (permettre ou non le click) btnCommit.Enabled = False btnAddNew.Enabled = True btnDelete.Enabled = True 'On se replace au debut currentrow = 0 'On continue d'afficher les donnees avec la procedure: NavigateRecords() End Sub Private Sub btnCommit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCommit.Click 'Bouton Enregistrer Individu (INSERT & UPDATE) If currentrow <> -1 Then Dim cb As New OleDb.OleDbCommandBuilder(da) Dim dsNewRow As DataRow dsNewRow = ds.Tables("gen").NewRow() 'Fiche Individu dsNewRow.Item(1) = Nom.Text dsNewRow.Item(2) = Prenom.Text dsNewRow.Item(3) = sexe.Text dsNewRow.Item(4) = datenai.Text dsNewRow.Item(5) = lieunai.Text dsNewRow.Item(6) = datedec.Text dsNewRow.Item(7) = lieudec.Text dsNewRow.Item(8) = prof.Text dsNewRow.Item(9) = cause.Text dsNewRow.Item(10) = pere.Text dsNewRow.Item(11) = mere.Text 'Fiche Unions dsNewRow.Item(12) = nommar1.Text dsNewRow.Item(13) = prenommar1.Text dsNewRow.Item(14) = datemar1.Text dsNewRow.Item(15) = lieumar1.Text dsNewRow.Item(16) = nommar2.Text dsNewRow.Item(17) = prenommar2.Text dsNewRow.Item(18) = datemar2.Text dsNewRow.Item(19) = lieumar2.Text dsNewRow.Item(20) = nommar3.Text dsNewRow.Item(21) = prenommar3.Text dsNewRow.Item(22) = datemar3.Text dsNewRow.Item(23) = lieumar3.Text 'Fiche Enfants dsNewRow.Item(24) = E1.Text dsNewRow.Item(25) = E2.Text dsNewRow.Item(26) = E3.Text dsNewRow.Item(27) = E4.Text dsNewRow.Item(28) = E5.Text dsNewRow.Item(29) = E6.Text dsNewRow.Item(30) = E7.Text dsNewRow.Item(31) = E8.Text dsNewRow.Item(32) = E9.Text dsNewRow.Item(33) = E10.Text dsNewRow.Item(34) = E11.Text dsNewRow.Item(35) = E12.Text dsNewRow.Item(36) = E13.Text dsNewRow.Item(37) = E14.Text dsNewRow.Item(38) = E15.Text dsNewRow.Item(39) = E16.Text dsNewRow.Item(40) = E17.Text dsNewRow.Item(41) = E18.Text dsNewRow.Item(42) = E19.Text dsNewRow.Item(43) = E20.Text 'A definir: procedure enregistrement pour enfant de union 2 (item 44 a 63) & union 3 (item 64 a 83) 'Fiche Notes dsNewRow.Item(84) = historique.Text dsNewRow.Item(85) = RTFnote1.Text dsNewRow.Item(86) = RTFnote2.Text dsNewRow.Item(87) = RTFnote3.Text dsNewRow.Item(88) = RTFnote4.Text dsNewRow.Item(89) = RTFnote5.Text dsNewRow.Item(90) = RTFnote6.Text dsNewRow.Item(91) = RTFnote7.Text dsNewRow.Item(92) = RTFnote8.Text dsNewRow.Item(93) = RTFnote9.Text dsNewRow.Item(94) = RTFnote10.Text ds.Tables("gen").Rows.Add(dsNewRow) 'Fiche Individu ds.Tables("gen").Rows(currentrow).Item(1) = Nom.Text ds.Tables("gen").Rows(currentrow).Item(2) = Prenom.Text ds.Tables("gen").Rows(currentrow).Item(3) = sexe.Text ds.Tables("gen").Rows(currentrow).Item(4) = datenai.Text ds.Tables("gen").Rows(currentrow).Item(5) = lieunai.Text ds.Tables("gen").Rows(currentrow).Item(6) = datedec.Text ds.Tables("gen").Rows(currentrow).Item(7) = lieudec.Text ds.Tables("gen").Rows(currentrow).Item(8) = prof.Text ds.Tables("gen").Rows(currentrow).Item(9) = cause.Text ds.Tables("gen").Rows(currentrow).Item(10) = pere.Text ds.Tables("gen").Rows(currentrow).Item(11) = mere.Text 'Fiche Unions ds.Tables("gen").Rows(currentrow).Item(12) = nommar1.Text ds.Tables("gen").Rows(currentrow).Item(13) = prenommar1.Text ds.Tables("gen").Rows(currentrow).Item(14) = datemar1.Text ds.Tables("gen").Rows(currentrow).Item(15) = lieumar1.Text ds.Tables("gen").Rows(currentrow).Item(16) = nommar2.Text ds.Tables("gen").Rows(currentrow).Item(17) = prenommar2.Text ds.Tables("gen").Rows(currentrow).Item(18) = datemar2.Text ds.Tables("gen").Rows(currentrow).Item(19) = lieumar2.Text ds.Tables("gen").Rows(currentrow).Item(20) = nommar3.Text ds.Tables("gen").Rows(currentrow).Item(21) = prenommar3.Text ds.Tables("gen").Rows(currentrow).Item(22) = datemar3.Text ds.Tables("gen").Rows(currentrow).Item(23) = lieumar3.Text 'Fiche Enfants ds.Tables("gen").Rows(currentrow).Item(24) = E1.Text ds.Tables("gen").Rows(currentrow).Item(25) = E2.Text ds.Tables("gen").Rows(currentrow).Item(26) = E3.Text ds.Tables("gen").Rows(currentrow).Item(27) = E4.Text ds.Tables("gen").Rows(currentrow).Item(28) = E5.Text ds.Tables("gen").Rows(currentrow).Item(29) = E6.Text ds.Tables("gen").Rows(currentrow).Item(30) = E7.Text ds.Tables("gen").Rows(currentrow).Item(31) = E8.Text ds.Tables("gen").Rows(currentrow).Item(32) = E9.Text ds.Tables("gen").Rows(currentrow).Item(33) = E10.Text ds.Tables("gen").Rows(currentrow).Item(34) = E11.Text ds.Tables("gen").Rows(currentrow).Item(35) = E12.Text ds.Tables("gen").Rows(currentrow).Item(36) = E13.Text ds.Tables("gen").Rows(currentrow).Item(37) = E14.Text ds.Tables("gen").Rows(currentrow).Item(38) = E15.Text ds.Tables("gen").Rows(currentrow).Item(39) = E16.Text ds.Tables("gen").Rows(currentrow).Item(40) = E17.Text ds.Tables("gen").Rows(currentrow).Item(41) = E18.Text ds.Tables("gen").Rows(currentrow).Item(42) = E19.Text ds.Tables("gen").Rows(currentrow).Item(43) = E20.Text 'A definir: procedure enregistrement pour enfant de union 2 (item 44 a 63) & union 3 (item 64 a 83) 'Fiche Notes ds.Tables("gen").Rows(currentrow).Item(84) = historique.Text ds.Tables("gen").Rows(currentrow).Item(85) = RTFnote1.Text ds.Tables("gen").Rows(currentrow).Item(86) = RTFnote2.Text ds.Tables("gen").Rows(currentrow).Item(87) = RTFnote3.Text ds.Tables("gen").Rows(currentrow).Item(88) = RTFnote4.Text ds.Tables("gen").Rows(currentrow).Item(89) = RTFnote5.Text ds.Tables("gen").Rows(currentrow).Item(90) = RTFnote6.Text ds.Tables("gen").Rows(currentrow).Item(91) = RTFnote7.Text ds.Tables("gen").Rows(currentrow).Item(92) = RTFnote8.Text ds.Tables("gen").Rows(currentrow).Item(93) = RTFnote9.Text ds.Tables("gen").Rows(currentrow).Item(94) = RTFnote10.Text 'Mise a jour de la base da.Update(ds, "gen") Ici: Erreur ConccurencyViolation 'Message si succes de l'enregistrement MsgBox("Individu Enregistrer avec succès !" & vbCrLf & "Mise à jour de la Base réussis !" & vbCrLf & ds.Tables("gen").Rows.Count & " " & "Individus dans la base.") currentrow = 0 btnCommit.Enabled = False btnAddNew.Enabled = True btnDelete.Enabled = True End If End Sub Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click 'Bouton Effacer 'Demande si on veux vraiment effacer l'entree If MessageBox.Show("Voulez-vous vraiment effacer cette entrée ?", "Effacer", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = DialogResult.No Then 'Si NON... MsgBox("Operation Annuler") Exit Sub End If 'Si OUI... Dim cb As New OleDb.OleDbCommandBuilder(da) 'On efface la ligne en cours ds.Tables("gen").Rows(currentrow).Delete() MaxRows = MaxRows - 1 'On reviens sur la position de depart currentrow = 0 'Puis on continue de naviguer avec la procedure: NavigateRecords() 'On met la base a jour da.Update(ds, "gen") End Sub Private Sub Nom_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Nom.TextChanged 'Boutons a afficher si on met le curseur dans le controle Nom btnFirst.Enabled = True btnPrevious.Enabled = True btnNext.Enabled = True btnLast.Enabled = True btnCommit.Enabled = True btnAddNew.Enabled = True btnDelete.Enabled = True btnClear.Enabled = True End Sub Private Sub sexe_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sexe.TextChanged 'Procedure pour changer la couleur de fond selon l'entree du sexe (M/Bleu, F/Rose, I/Vert) If sexe.Text = ("m") Then sexe.Text = ("Masculin") TabPage1.BackColor = Color.DarkBlue TabPage2.BackColor = Color.Purple ElseIf sexe.Text = ("f") Then sexe.Text = ("Féminin") TabPage1.BackColor = Color.Purple TabPage2.BackColor = Color.DarkBlue ElseIf sexe.Text = ("i") Then sexe.Text = ("Inconnu") TabPage1.BackColor = Color.DarkGreen TabPage2.BackColor = Color.DarkGreen ElseIf sexe.Text = ("") Then sexe.Text = ("") TabPage1.BackColor = Color.DarkGreen TabPage2.BackColor = Color.DarkGreen End If End Sub Private Sub ÀProposToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ÀProposToolStripMenuItem.Click 'Montre la Form À Propos... about.Show() End Sub