Gérer une Base de données Access à partir d'une listebox sous VB

Résolu
Delivel Messages postés 3 Date d'inscription vendredi 16 septembre 2016 Statut Membre Dernière intervention 27 septembre 2016 - Modifié par BunoCS le 16/09/2016 à 09:05
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 16 sept. 2016 à 09:30
Bonjour à tous et à toutes! je vous remercie d'avance pour votre aide
je suis Delivel,débutant en visual basic et j'ai un problème:
j'ai un formulaire,des boutons ajouter un enregistrement, modifier et supprimer et une base de données Access nommée MaPremiereBase dans laquelle il y a une table NomPatient qui contient les champs Nom et Prénom.
Problème: Lorsque je modifie un élément de la listebox c'est le suivant qui se modifie, si une personne pourait bien se sécourir ça me ferait un grand bien merci.
Boutton 1: Modifier
Boutton 2: Ajouter un enreigistrement
Boutton 3: Supprimer
Voici Mon Code:
Imports System
Imports System.Data
Imports System.Data.OleDb

Public Class Form1
    Private ObjetConnection As OleDbConnection
    Private ObjetCommand As OleDbCommand
    Private ObjetDataAdapter As OleDbDataAdapter
    Private ObjetDataSet As New DataSet()
    Private strSql As String
    Private ObjetDataTable As DataTable
    Private ObjetDataRow As DataRow
    Private RowNumber As Integer
    Private strConn As String
    Private ObjetCommandBuilder As OleDbCommandBuilder
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\A effacer\MyDataBase.mdb;"
        strSql = "SELECT NomPatient.* FROM NomPatient"
        ObjetConnection = New OleDbConnection()
        ObjetConnection.ConnectionString = strConn

        ObjetConnection.Open()
        ObjetCommand = New OleDbCommand(strSql)
        ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
        ObjetCommand.Connection() = ObjetConnection
        ObjetDataAdapter.Fill(ObjetDataSet, "NomPatient")
        ObjetDataTable = ObjetDataSet.Tables("NomPatient")
        ListBox1.DataSource = ObjetDataSet.Tables("NomPatient")
        ListBox1.DisplayMember = "Nom"
        NumeroInterne(RowNumber)

    End Sub
    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        ListBox1.DataSource = ObjetDataSet.Tables("NomPatient")
        ListBox1.DisplayMember = "Nom"
        ListBox1.ValueMember = "Nombre"
        RowNumber = ListBox1.SelectedValue
        NumeroInterne(RowNumber)
    End Sub




    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        
        ObjetDataRow = ObjetDataSet.Tables("NomPatient").Rows(RowNumber)
        ObjetDataRow("Nom") = Me.Nom.Text
        ObjetDataRow("Prénom") = Me.Prénom.Text
        ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
        ObjetDataAdapter.Update(ObjetDataSet, "NomPatient")
        ObjetDataSet.Clear()
        ObjetDataAdapter.Fill(ObjetDataSet, "NomPatient")
        ObjetDataTable = ObjetDataSet.Tables("NomPatient")
    End Sub



    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ObjetDataRow = ObjetDataSet.Tables("NomPatient").NewRow()
        ObjetDataRow("Nom") = Me.Nom.Text
        ObjetDataRow("Prénom") = Me.Prénom.Text
        ObjetDataSet.Tables("NomPatient").Rows.Add(ObjetDataRow)
        ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
        ObjetDataAdapter.Update(ObjetDataSet, "NomPatient")
        ObjetDataSet.Clear()
        ObjetDataAdapter.Fill(ObjetDataSet, "NomPatient")
        ObjetDataTable = ObjetDataSet.Tables("NomPatient")
    End Sub



    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        ObjetDataSet.Tables("NomPatient").Rows(RowNumber).Delete()
        ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
        ObjetDataAdapter.Update(ObjetDataSet, "NomPatient")
    End Sub
End Class

Merci encore pour votre aide!
je souhaite
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
16 sept. 2016 à 09:30
Bonjour,

Sans avoir regardé le code en détail....
ceci devrait fonctionner non ?
ObjetDataRow = ObjetDataSet.Tables("NomPatient").Rows(RowNumber-1)

0
Rejoignez-nous