Connection à la BD

restlako Messages postés 6 Date d'inscription mercredi 8 mars 2017 Statut Membre Dernière intervention 1 avril 2017 - 21 mars 2017 à 12:50
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 23 mars 2017 à 12:09
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

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
Modifié par cs_JMO le 23/03/2017 à 12:36
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".
0
Rejoignez-nous