Connection à la BD

Signaler
Messages postés
6
Date d'inscription
mercredi 8 mars 2017
Statut
Membre
Dernière intervention
1 avril 2017
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
bonjour,
je ne parviens pas toujours pas à communiquer avec ma base de données Access alors que les éléments pré-enregistrer sur ma base sont visibles dans le formulaire.
Bref, ceux dont j'ai besoin c'est de pouvoir enregistrer les éléments saisi sur mon formulaire dans la base.Voici un bout de code ...

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Public Class Form1
Dim connecte As Boolean = False
Private cn As OleDbConnection
Private cmd As OleDbCommand
Private dta As OleDbDataAdapter
Private dts As New DataSet
Private sql As String
Private dtt As DataTable
Private dtr As DataRow
Private rownum As Integer
Private cnxstr As String
Private cmdb As OleDbCommandBuilder
Dim cha As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
dtr = dts.Tables("Produit").NewRow
dtr("IDProduitTextBox") = Me.IDProduitTextBox.Text
dtr("DesignationTextBox") = Me.Text
dtr("CategorieTextBox") = Me.Text
dtr("GrammageTextBox") = Me.Text
'dtr("FormeTextBox") = Me.Text
dtr("PUTextBox") = Me.Text
dts.Tables("Produit").Rows.Add(dtr)
cmdb = New OleDbCommandBuilder(dta)
dta.Update(dts, "Produit")
dts.Clear()
dta.Fill(dts, "Produit")
dtt = dts.Tables("Produit")
cnx = Nothing
dts = Nothing
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
cnxstr = "Provider=Microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\base.mdb;"
cnx = New OleDbConnection
cnx.ConnectionString = cnxstr
cnx.Open()
sql = "select IDProduitTextBox.* from Produit"
cmd = New OleDbCommand(sql)
dta = New OleDbDataAdapter(cmd)
cmd.Connection() = cnx
dta.Fill(dts, "Produit")
dtt = dts.Tables("Produit")
dtr = dts.Tables("Produit").Rows(rownum)
dtr("IDProduitTextBox") = Me.Text
dtr("DesignationTextBox") = Me.Text
dtr("CategorieTextBox") = Me.Text
dtr("GrammageTextBox") = Me.Text
dtr("FormeTextBox") = Me.Text
dtr("PUTextBox") = Me.Text
cnx = Nothing
dts = Nothing
MessageBox.Show("Vous aviez modifier ce Produit avec succès")
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
dts.Tables("Produit").Rows(rownum).Delete()
cmdb = New OleDbCommandBuilder(dta)
dta.Update(dts, "Produit")
cnx = Nothing
dts = Nothing

1 réponse

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
Bonjour le Forum,
Bonjour restlako,

Ci-dessous un exemple de mise à jour d'une base Access.

Quand le champ [Nom] = "DUPONT" de ma table [table requête], je modifie les champs [Nom] et [Prenom].
    Private pathbase As String = Application.StartupPath & "\Database11.accdb"
    Private connStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & pathbase

    Sub UpdateDataBase()
        Using conn As New OleDbConnection(connStr)
            Dim query As String
            conn.Open()
            'For Each .... 
            query = "UPDATE [table requête] SET [Nom] = '" & "DUPOND" & "'" & _
                     ",[Prenom] = '" & "Sophie" & "'" & _
                     " WHERE [Nom] = '" & "DUPONT" & "'"
            Dim cmd As OleDbCommand = New OleDbCommand(query, conn)
            Dim dta As OleDbDataAdapter = New OleDbDataAdapter(cmd)
            cmd.ExecuteNonQuery()
            ' Next
            conn.Close()
        End Using
    End Sub

Il suffit donc d'intégrer la query dans une boucle For Each ... Next".