Problème de mise à jour!

Résolu
autodidacte3
Messages postés
58
Date d'inscription
mardi 21 juillet 2009
Statut
Membre
Dernière intervention
25 décembre 2014
- 8 mai 2012 à 11:30
autodidacte3
Messages postés
58
Date d'inscription
mardi 21 juillet 2009
Statut
Membre
Dernière intervention
25 décembre 2014
- 8 mai 2012 à 17:02
Problème de mise à jour!
Salut, je souhaite vraiment trouver une réponse à mon problème.
Je n’arrive pas à mettre ma Base de donnée à jour dans chaque ajout je trouve les derniers enregistrement mes pas si j’ouvre la Base sur ACCES

J’ai trouvé ce petit programme ici Fait par "kewan" "http://www.vbfrance.com/forum/sujet-BOUCLE-SUR-ENREGISTREMENTS-ACCESS_1558801.aspx" et que j’ai essayé de l’adapter à mes besoins

    Private Sub btn_ajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ajouter.Click
        Dim ValeurEntree As String = ""

        If Not IsNumeric(txt_ajouter_AP.Text) Then

            ValeurEntree = txt_ajouter_AP.Text
            MsgBox("veuillez corriger, Avant de continuer")
        Else

            ' Déclaration de la variable cmd
            ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
            Dim cmd As OleDb.OleDbCommand

            ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
            Dim sql_ajouter As String

            ' On écrit notre requête et on l'assigne à la variable sql_ajouter
            sql_ajouter = "INSERT INTO Decision (NOperation,Intitule,AP) VALUES(Val_NOperation, Val_Intitule, Val_AP)"

            ' Initialisation de la requête
            cmd = New OleDb.OleDbCommand(sql_ajouter, con)

            ' On définit les paramètres utilisés pour le bon déroulement de la requête
            ' On assigne à Val_NOperation" le texte contenu dans le textbox txt_ajouter_NOperation
            cmd.Parameters.AddWithValue("Val_NOperation", txt_ajouter_NOperation.Text)
            ' On assigne à Val_Intitulem" le texte contenu dans le textbox txt_ajouter_Intitule
            cmd.Parameters.AddWithValue("Val_Intitule", txt_ajouter_Intitule.Text)
            'cmd.Parameters.AddWithValue("Val_Monnaie", txt_ajouter_Monnaie.Text)
            cmd.Parameters.AddWithValue("Val_AP", txt_ajouter_AP.Text)
            ' Ouverture de la connexion
            cmd.Connection.Open()
            ' Exécution de la requête SQL
            cmd.ExecuteReader()
            ' Fermeture de la connexion
            cmd.Connection.Close()
            'TextBox5.Text = ""
            ' On efface les deux "textbox"
            txt_ajouter_NOperation.Text = ""
            txt_ajouter_Intitule.Text = "" 'Intitule
            txt_ajouter_AP.Text = "" 'AP

            ' Message indiquant que le nouveau contact a bien été enregistré
            MsgBox("Le nouveau contact a bien été enregistré.")

            ' On vide le dataset
            ds.Clear()

            ' et on le réaffiche en faisant appel à Connexion()
            ' pour que notre nouveau contact apparaisse bien
            Connexion()
        End If 'IsNumeric(ValeurEntree)

End Sub

4 réponses

NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
8 mai 2012 à 16:20
Bonjour,

Pourquoi tu ouvres et fermes ta base de données à tout bout de champ ?
Ouvres-la une fois au début du programme, puis fermes-la à la fin de ton programme, ce sera plus rapide et moins lourd.

Ton problème, me semble plus confus qu'à la première lecture.

Peux tu faire simple ?
Tu ajoutes un enregistrement, il ne s'affiche pas sur ta form ?
Tu ajoutes un enregistrement, il n'est pas ajouté à la base de données ?
Es-tu sûr d'ouvrir le bon fichier ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
3
autodidacte3
Messages postés
58
Date d'inscription
mardi 21 juillet 2009
Statut
Membre
Dernière intervention
25 décembre 2014

8 mai 2012 à 17:02
Bon soir, NHenry.
-J'ajoute un enregistrement, il s'affiche sur la form
mais en ouvrant la base de données "mdb" sous Access il n'est pas ajouté???

-Es-tu sûr d'ouvrir le bon fichier? j'ai changé le chemin d’accès à la Base de données et çà a l'air de fonctionné au premier coup mais je test encore...

j'ai changer la ligne du PROVIDER "le chemin d'accès de la Base de données".

de:

con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & My.Application.Info.DirectoryPath & "\Contacts.mdb"


en:

con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =D:\vb\exercise\DECISION\M_A_S_BDD\Contacts.mdb"


Merci pour le coup de main

A+
3
NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
8 mai 2012 à 13:40
Bonjour,

Que fait "Connexion()" ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
autodidacte3
Messages postés
58
Date d'inscription
mardi 21 juillet 2009
Statut
Membre
Dernière intervention
25 décembre 2014

8 mai 2012 à 14:45
Merci beaucoup NHenry Voilà la partie du code "connexion" c'est beaucoup pour mettre toute la source.

Imports System.Data
Public Class Form11
    ' Déclaration des variables utilisées:

    ' N° de place de l'enregistrement
    Dim Place_Enregistrement As Integer
    ' Nombre total d'enregistrements dans la table Decision
    Dim Max_Enregistrements As Integer
    ' Notre objet connexion
    Dim con As New OleDb.OleDbConnection
    ' Notre dataset
    Dim ds As New DataSet
    ' La variable qui contient l'ID de l'enregistrement en cours
    Dim Val_ID As Integer

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        ' (1) Nous devons d'abord nous connecter à notre BDD,
        con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & My.Application.Info.DirectoryPath & "\Contacts.mdb"

        ' Nous souhaitons ensuite exécuter une requête (2),
        ' récupérer le résultat de cette requête dans un dataset (3) dès que la
        ' page se charge. Pour cela, nous faisons appel à Private Sub Connexion()
        Connexion()

    End Sub
    Private Sub Connexion()
        ' Déclaration de la variable cmd
        ' OleDbCommand représentera ici une instruction SQL à exécuter par rapport à une source de données
        Dim cmd As OleDb.OleDbCommand
        ' Déclaration de sql_ajouter, qui contiendra la requête SQL permettant d'ajouter un enregistrement
        Dim sql_tout_afficher As String
        sql_tout_afficher = "SELECT * FROM Decision"

        ' Initialisation de la requête
        cmd = New OleDb.OleDbCommand(sql_tout_afficher, con)

        ' Ouverture de la connexion
        cmd.Connection.Open()


        '(3) Récupération du résultat de la requête dans un dataset
        ' Déclaration de notre data adapter
        Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter
        ' On sélectionne les enregistrements de la requête
        da.SelectCommand = cmd
        ' et on injecte les enregistrements dans le dataset
        da.Fill(ds, "Liste_Decision")

        ' Fermeture de la connexion
        cmd.Connection.Close()

        ' Calcul du nombre d'enregistrements dans la table Decision
        Max_Enregistrements = ds.Tables("Liste_Decision").Rows.Count

        ' Si la table ne contien aucun enregistrement, on désactive tous les boutons
        ' sauf le bouton ajouter
        If Max_Enregistrements = 0 Then
            Bouton_modifier.Enabled = False
            Bouton_suivant.Enabled = False
            Bouton_precedent.Enabled = False
            Bouton_modifier.Enabled = False
            Bouton_premier.Enabled = False
            Bouton_dernier.Enabled = False
            Bouton_supprimer.Enabled = False
            NOperation.Text = ""
            Intitule.Text = ""
            AP.Text = ""
            Monnaie.Text = ""
            ' Si la table n'est pas vide
        Else

            ' A l'ouverture de l'application et lorsqu'on insère un nouvel enregistrement
            ' on affiche le premier enregistrement de la table
            Place_Enregistrement = 0
            ' On appelle Private Sub Navigation()
            Navigation()
        End If

    End Sub
0