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

VB.NET Discussion :

Modification d'un enregistrement


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut Modification d'un enregistrement
    Je veux modifier un enregistrement mais d'après le code que j'ai établi aucune modification ne s'effectue. Comment faire?

    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
     
    Private Sub Btnmodif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnmodif.Click
            Btnmodif.Enabled = False
            Btnannuler.Enabled = False
            Btnediter.Enabled = True
            Dim cnx As New OleDbConnection
            Dates.Visible = False
            Txtdates.Visible = True
            Txtdates.Text = ""
            Datef.Visible = False
            Txtdatef.Visible = True
            Txtdatef.Text = ""
            Cbxfrs.Visible = False
            Txtnomfrs.Visible = True
            Txtnomfrs.Text = ""
            Txtnumab.Enabled = False
            Txtnumab.ReadOnly = True
            Txtnumab.Text = ""
            Txtlibab.Enabled = False
            Txtlibab.Text = ""
            Txtdates.Enabled = False
            Txtdates.ReadOnly = True
            Txtdatef.Enabled = False
            Txtdatef.ReadOnly = True
            Txtmontantab.Enabled = False
            Txtmontantab.ReadOnly = True
            Txtmontantab.Text = ""
            Txtnumfrs.Enabled = False
            Txtnumfrs.ReadOnly = True
            Txtnumfrs.Text = ""
            Txtnomfrs.Enabled = False
            Txtnomfrs.ReadOnly = True
            Txtnomfrs.Text = ""
            Dim command = New OleDbCommand("update Abonnement set Abonnement.Num_abonnement='" & Cbxnumab.Text & "'", cnx)
            Try
                cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents and Settings\Administrateur.STANDARD\Mes documents\Projet Budget\Budget\Budget\Marches.mdb"
                cnx.Open()
     
            Catch ex As Exception
     
            End Try
            Me.Dispose()
            Frmprincipale.Show()
        End Sub

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Ben il faudrait sans doute que tu exécutes la requête avec un ExecuteNonQuery()...
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut Risque de doublons
    J'ai fait comme tu m'as dit sauf que quand j'essaye d'insérer cet enregistrement modifié il me met qu'il y a un risque de doublons. Il n'accepte pas de réinsérer la clé primaire qui est le numéro de l'abonnement. comment faire pour qu'il accepte de le réinscrire?
    voici mon nouveau code :
    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
     
    Private Sub Btnmodif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnmodif.Click
            Btnmodif.Enabled = False
            Btnannuler.Enabled = False
            Btnediter.Enabled = True
            Dim cnx As New OleDbConnection
            Dates.Visible = False
            Txtdates.Visible = True
            Txtdates.Text = ""
            Datef.Visible = False
            Txtdatef.Visible = True
            Txtdatef.Text = ""
            Cbxfrs.Visible = False
            Txtnomfrs.Visible = True
            Txtnomfrs.Text = ""
            Txtnumab.Enabled = False
            Txtnumab.ReadOnly = True
            Txtnumab.Text = ""
            Txtlibab.Enabled = False
            Txtlibab.Text = ""
            Txtdates.Enabled = False
            Txtdates.ReadOnly = True
            Txtdatef.Enabled = False
            Txtdatef.ReadOnly = True
            Txtmontantab.Enabled = False
            Txtmontantab.ReadOnly = True
            Txtmontantab.Text = ""
            Txtnumfrs.Enabled = False
            Txtnumfrs.ReadOnly = True
            Txtnumfrs.Text = ""
            Txtnomfrs.Enabled = False
            Txtnomfrs.ReadOnly = True
            Txtnomfrs.Text = ""
            Dim command = New OleDbCommand("update Abonnement set Abonnement.Num_abonnement='" & Cbxnumab.Text & "'")
            Try
                cnx.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = C:\Documents and Settings\Administrateur.STANDARD\Mes documents\Projet Budget\Budget\Budget\Marches.mdb"
                cnx.Open()
                command.connection = cnx
                command.executenonquery()
                MsgBox("L'abonnement a été modifié avec succès", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                If Not (cnx Is Nothing) Then
                    cnx.Close()
                End If
            End Try
            Me.Dispose()
            Frmprincipale.Show()
        End Sub

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    C'est normal, tu essaies réaffecter la même clé primaire à toutes les lignes de la table. Tu n'aurais pas oublié la clause WHERE de ta requête UPDATE ?

    Et au passage, ça ne sert à rien de faire un Me.Dispose à la fin...
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 257
    Par défaut
    Comment je peux corriger cela? Peux tu me donner un exemple ou de corriger mon code SVP?

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Ben tu ajoutes une clause WHERE dans ta requête SQL pour ne mettre à jour qu'un des enregistrements (celui qui correspond à tes critères).
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modification d'un enregistrement par une requete
    Par tzinzin dans le forum Access
    Réponses: 7
    Dernier message: 23/03/2006, 20h36
  2. date de modification d'un enregistrement
    Par xycoco dans le forum Access
    Réponses: 3
    Dernier message: 15/11/2005, 21h47
  3. [IBquery]modification manuelle d'enregistrement
    Par dudux dans le forum Bases de données
    Réponses: 5
    Dernier message: 27/06/2005, 20h53
  4. TDBlookupcombo et modification d'un enregistrement existant
    Par delphim dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/04/2005, 12h11
  5. Gestion des modifications pour un enregistrement
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2004, 14h09

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