IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Problème de mise à jour d'une bdd Access depuis une form


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Par défaut Problème de mise à jour d'une bdd Access depuis une form
    Bonjour,

    D’après plusieurs exemples trouvés sur le net j'ai réalisé une form sur laquelle j'affiche dans deux textbox le contenu partiel d'un bdd access.
    Ma bdd est composée de 3 lignes et plusieurs colonnes.
    Quand je sélectionne la ligne dans mon 1er textbox, l'info correspondante du deuxième textbox change correctement.
    J'ai sur ma form un bouton qui doit faire une opération sur des chiffres qui sont dans la 3ème et 4ème colonne de la bdd et mettre à jour cette base pour modifier la ligne correspondant à celle sélectionnée dans le premier textbox.
    Le problème, c'est que tout fonctionne mais que sur la première ligne de la bdd ! C'est uniquement les chiffres de la première ligne qui change même en sélectionnant les autres lignes ...

    Quelqu'un aurait une idée pour ne modifier que la ligne sélectionnée dans le textbox?

    Merci.

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    il va falloir nous en dire plus parce que là on n'a aucun moyen de t'aider.
    Comment tu "sélectionnes" dans une TextBox ? Tu le fais comment ton update ?
    Un (ou plusieurs) bout(s) de code ne serai(en)t pas de trop.

  3. #3
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Juin 2015
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Juin 2015
    Messages : 71
    Par défaut
    Bonsoir,

    J'ai été un peu vite sur la description, il s'agit de deux listbox liés aux données de la table.
    Le programme d'origine étant une vrai usine à gaz je souhaiterai repartir de zéro avec ce code, une simple form avec deux listbox et deux boutons.
    Le but étant de multiplier par 3 le nombre de la textbox2 correspondant à la ligne sélectionnée dans le textbox1 et d'envoyer le résultat dans la 3éme colonne de la table pour la ligne correspondante...

    Voici le code "simplifié " :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    Imports System.Data.OleDb
     
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: cette ligne de code charge les données dans la table 'NombreDataSet.TabNombre'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
            Me.TabNombreTableAdapter.Fill(Me.NombreDataSet.TabNombre)
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            '  Déclaration Objet Connexion
     
            Dim ObjetConnection As OleDbConnection
     
            ' Déclaration Objet Commande
     
            Dim ObjetCommand As OleDbCommand
     
            '  Déclaration Objet DataAdapter
     
            Dim ObjetDataAdapter As OleDbDataAdapter
     
            ' Déclaration Objet DataSet
     
            Dim ObjetDataSet As New DataSet() 'Attention au New
     
            'String contenant la 'Requête SQL'
     
            Dim strSql As String
     
            ' Déclaration Objet DataTable
     
            Dim ObjetDataTable As DataTable
     
            ' Déclaration Objet DataRow (ligne)
     
            Dim ObjetDataRow As DataRow
     
            'Numéro de la ligne en cours
     
            Dim RowNumber As Integer    'Numéro de l'enregistrement courant
     
            'Paramêtres de connexion à la DB
     
            Dim strConn As String
     
            'Pour recompiler les données modifiées avant de les remettre dans le
     
            '"DataAdapter"
     
            Dim ObjetCommandBuilder As OleDbCommandBuilder
     
            'Initialisation de la chaîne de paramètres pour la connexion
     
            strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= c:\Nombre.mdb;"
     
            'Initialisation de la chaîne contenant l'instruction SQL
     
            strSql = "SELECT TabNombre.* FROM TabNombre"
     
            'Instanciation d'un Objet Connexion
     
            ObjetConnection = New OleDbConnection()
     
            'Donner à la propriété ConnectionString les paramètres de connexion
     
            ObjetConnection.ConnectionString = strConn
     
            'Ouvrir la connexion
     
            'ObjetConnection.Open()
            'Tentative de connexion à la BDD
            Try
                ObjetConnection.Open()
            Catch ex As Exception
                MessageBox.Show("Erreur lors de la connexion à la BDD ... Vérifiez votre connexion ou contactez votre administrateur..", "ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Me.Close()
            End Try
            'Instancier un objet Commande
     
            ObjetCommand = New OleDbCommand(strSql)
     
            'Instancier un objet Adapter
     
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
     
            'initialiser l'objet Command
     
            ObjetCommand.Connection() = ObjetConnection
     
            'Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
     
            ObjetDataAdapter.Fill(ObjetDataSet, "TabNombre")
     
            'Mettre dans un Objet DataTable une table du DataSet
     
            ObjetDataTable = ObjetDataSet.Tables("TabNombre")
            ' Extraire l'enregistrement courant
     
            ObjetDataRow = ObjetDataSet.Tables("TabNombre").Rows(RowNumber)
     
     
            '*********************************************************************
            '*********************************************************************
     
            'Modifier les valeurs des champs en  récupérant le contenu des TextBox
     
            ObjetDataRow("Resultat") = Me.ListBox2.Text * 3
     
            'Pour modifier les valeurs changées dans le DataAdapter
     
            ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
     
            'Mise à jour
     
     
            'On vide le DataSet et on le 'recharge' de nouveau.
     
            ObjetDataSet.Clear()
     
            ObjetDataAdapter.Fill(ObjetDataSet, "TabNombre")
     
            ObjetDataTable = ObjetDataSet.Tables("TabNombre")
     
            'fermer la connexion
            'Objet connectée
     
            ObjetConnection = Nothing
     
            ObjetCommand = Nothing
     
            ObjetDataAdapter = Nothing
     
            'Objet déconnectée
     
            ObjetDataSet = Nothing
     
            ObjetDataTable = Nothing
     
            ObjetDataRow = Nothing
            MsgBox("Nombre modifiés !", MsgBoxStyle.Exclamation)
     
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            End
        End Sub
    End Class

Discussions similaires

  1. [AC-2013] Envoi de mail depuis une bdd access avec un nom de sender que je choisis
    Par alpha_du_centaure dans le forum Access
    Réponses: 8
    Dernier message: 22/12/2014, 21h35
  2. Mise à jours base de donnée Access depuis liste Excel
    Par Stepsbysteps dans le forum Excel
    Réponses: 4
    Dernier message: 07/10/2013, 14h25
  3. Réponses: 2
    Dernier message: 23/04/2012, 17h23
  4. Réponses: 4
    Dernier message: 09/07/2008, 14h05
  5. Import des tables d'une BDD access vers une autre table
    Par Darki dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/07/2007, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo