Bonjour tous le monde.
J'ai un petit souci sur un bout de programme.

Mon problème :

J'ai un fichier base de données acces. Donc un xxx.mdb

Actuellement je sais ajouter un nouvel enregistrement dans la base de donnée grâce à ceci :

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
 
Imports System.Data.OleDb
 
Public Class Form2
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim cn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader
        Dim icount As Integer
        Dim str As String
        '        Try
        cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Florent\Desktop\Programme test\test1.mdb")
        cn.Open()
        str = "insert into tab1 (col1,col2,col3) values(" & TextBox1.Text & "," & TextBox2.Text & "," & TextBox3.Text & ")"
        'string stores the command and CInt is used to convert number to string
        cmd = New OleDbCommand(str, cn)
        cmd.ExecuteNonQuery()
        '            MessageBox.Show(icount)
        'displays number of records inserted
        '        Catch
        '        End Try
        cn.Close()
 
        MsgBox("OK")
 
    End Sub
Donc ce bout de programme me permet d'ajouter une nouvelle ligne dans ma base de données.

Ensuite je sais lire la base de donnée grâce à ceci.

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
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim cn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader
        Dim icount As Integer
        Dim str As String
 
        Try
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Florent\Desktop\Programme test\test1.mdb;")
            'provider to be used when working with access database
            cn.Open()
            cmd = New OleDbCommand("select * from tab1", cn)
            dr = cmd.ExecuteReader
            While dr.Read()
                Me.ComboBox1.Items.Add(dr(0))
            End While
        Catch
        End Try
        dr.Close()
        cn.Close()
    End Sub
Ce code me permet de rajouter dans ma "combobox" l'incrémentation qui me permet de choisir ensuite la ligne que je veut lire. Une fois la ligne sélectionnée je peut insérer les enregistrements dans mes "Textbox" grâce au code suivant.
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
 
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim cn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader
        Dim icount As Integer
        Dim str As String
 
        Dim txt
        Dim txt1
 
        txt = Me.ComboBox1.Text
 
        If txt = "" Then
            MsgBox("veuillez sélectionner un numero")
            Exit Sub
        End If
 
        Try
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Florent\Desktop\Programme test\test1.mdb;")
            'provider to be used when working with access database
            cn.Open()
            cmd = New OleDbCommand("select * from tab1", cn)
            dr = cmd.ExecuteReader
            While dr.Read()
 
                txt1 = dr(0)
 
                If txt1 = txt Then
                    Me.TextBox1.Text = dr(0)
                    Me.TextBox2.Text = dr(1)
                    Me.TextBox3.Text = dr(2)
                End If
            End While
        Catch
        End Try
        dr.Close()
        cn.Close()
 
        MsgBox("Fini")
    End Sub
Voila jusque la, je sais
1 - Ajouter une nouvelle ligne dans la base
2 - Lire la base de données.

Mais la ou je bloque,,, Une fois que j'ai lu une ligne de la base de données, c'est de modifier une valeur et ensuite de la ré-injecter dans la bonne colonne et ligne dans la base de données ????


Si quelqu'un à une idée ????