restlako
Messages postés6Date d'inscriptionmercredi 8 mars 2017StatutMembreDernière intervention 1 avril 2017
-
21 mars 2017 à 12:50
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 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
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".