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 :

[VB2005] Problème de modification sur BD access


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut [VB2005] Problème de modification sur BD access
    Bonjour,

    Je continue la découverte de VB mais je vous embête pour la seconde fois Je tiens à préciser que j'ai fais une recherche sur le forum et j'ai rien trouvé pour mon problème

    Avant d'expliquer la chose je vous joins un screenshot qui est beaucoup plus explicite.




    Maintenant je vous explique. Grâce à ma listbox je récupère le champ "nom" d'une base de données, grâce à ce champs qui est la clé primaire de la table je récupère les autres champs dans des textbox afin de pouvoir les modifier. Sur le clic du bouton validé il n'y a modification que du champs nom... Mais pourquoi ? Les deux autres champs dans la table se nomme bien "Prenom" et "Datenaissance"

    Code du bouton "Valider" :
    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
     
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Si on est en ajout
            If Button3.Enabled = False Then
                'Divers contrôls d’erreurs
                If Me.TextBox1.Text = "" Then
                    MsgBox("Veuillez saisir le nom.", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                    Exit Sub
                End If
                If Me.TextBox2.Text = "" Then
                    MsgBox("Veuillez saisir le prénom.", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                    Exit Sub
                End If
                If Not MaskedTextBox1.MaskFull Then
                    MsgBox("Date incorrecte. Vérifier la date", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                    Exit Sub
                End If
                dtr = ObjetDataSet.Tables("Personne").NewRow()
                dtr("Nom") = Me.TextBox1.Text
                dtr("Prenom") = Me.TextBox2.Text
                dtr("Datenaissance") = Me.MaskedTextBox1.Text
                ObjetDataSet.Tables("Personne").Rows.Add(dtr)
                'Pour modifier les valeurs changées dans le DataAdapter
                cmdb = New OleDbCommandBuilder(ObjetDataAdapter)
                'Mise à jour
                ObjetDataAdapter.Update(ObjetDataSet, "Personne")
                'On vide le DataSet et on le 'recharge' de nouveau.
                ObjetDataSet.Clear()
                ObjetDataAdapter.Fill(ObjetDataSet, "Personne")
                ObjetDataTable = ObjetDataSet.Tables("Personne")
                Button3.Enabled = True
                Button4.Visible = True
            End If
            'si on est en Modification
            If Button4.Enabled = False And Button3.Visible = False Then
                Dim choix As String
                choix = ListBox1.Text
                rownum = ListBox1.SelectedIndex
                If MsgBox("Confirmer la modification de la personne " & choix & " ?", MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton1 Or MsgBoxStyle.Question, "Confirmation") = MsgBoxResult.Yes Then
                    'Divers contrôls d’erreurs
                    If Me.TextBox1.Text = "" Then
                        MsgBox("Veuillez saisir le nom.", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                        Exit Sub
                    End If
                    If Me.TextBox2.Text = "" Then
                        MsgBox("Veuillez saisir le prénom.", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                        Exit Sub
                    End If
                    If Not MaskedTextBox1.MaskFull Then
                        MsgBox("Date incorrecte. Vérifier la date", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Erreur")
                        Exit Sub
                    End If
                    ' Extraire l'enregistrement courant
                    dtr = ObjetDataSet.Tables("Personne").Rows(rownum)
                    'Modifier les valeurs des champs en  récupérant le contenu des TextBox
                    dtr("Nom") = Me.TextBox1.Text
                    dtr("Prenom") = Me.TextBox2.Text
                    dtr("Datenaissance") = Me.MaskedTextBox1.Text
                    'Pour modifier les valeurs changées dans le DataAdapter
                    cmdb = New OleDbCommandBuilder(ObjetDataAdapter)
                    'Mise à jour
                    ObjetDataAdapter.Update(ObjetDataSet, "Personne")
                    'On vide le DataSet et on le 'recharge' de nouveau.
                    ObjetDataSet.Clear()
                    ObjetDataAdapter.Fill(ObjetDataSet, "Personne")
                    ObjetDataTable = ObjetDataSet.Tables("Personne")
                    'ObjetConnection.Close()
                    Button3.Visible = True
                    Button4.Enabled = True
                    TextBox1.Enabled = False
                    TextBox2.Enabled = False
                    MaskedTextBox1.Enabled = False
                End If
            End If
        End Sub
    Voila lorsque j'ajoute une nouvelle personne tout est ok mais lorsque je modifie je me retrouve donc avec un seul champs mis à jour...


    Autre question si je veux trié ma liste ma technique ne fonctionne plus une autre méthode à me suggérer sans pour autant modifier tout le formulaire ...
    Merci


    PS : Je vous ai tout fournis à part les boutons ajout modif et quitter qui ne présentent pas selon moi grand intérêt. Veuillez m'excuser pour la longueur du post et s'il s'agit d'erreurs grotesques, je débute soyez indulgents merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut
    Citation Envoyé par Marmo31 Voir le message
    dtr("Nom") = Me.TextBox1.Text
    dtr("Prenom") = Me.TextBox2.Text
    dtr("Datenaissance") = Me.MaskedTextBox1.Text
    Il semblerait que seul le premier champs si j'inverse et met par exemple le prénom en premier alors que celui ci sera modifié ... pourquoi ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut
    J'ai tenté de faire une requête update pour la modification et là tout est pris en compte, mais je n'arrive pas à actualiser ma listbox

    Personne n'a de solution ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 15
    Par défaut
    Bon bah après un gros monologue de ma part, et une bonne journée de recherche, j'ai testé un truc tout bête ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim nom, prenom, naissanceas string
    nom = Textbox1.text
    prenom = Textbox2.text
    naissance = MaskedTextbox1.text
    ....
    ....
    dtr("Nom") = nom
    dtr("Prenom") = prenom
    dtr("Datenaissance") = naissance
    ....
    Et maintenant ca marche ....
    S'agit il d'un bug ? ou est-ce moi qui ai mal fait precedement en affectant directement sans passer par une variable ?
    Parfois c'est quand même bete vb !

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

Discussions similaires

  1. Problème de lenteur sur base Access 2003
    Par pgloire dans le forum Modélisation
    Réponses: 5
    Dernier message: 02/04/2008, 19h51
  2. Problème de modification sur un datagrid
    Par jdev23 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/12/2007, 23h52
  3. problème d'actualisation sur formulaire access
    Par abhleza dans le forum Access
    Réponses: 5
    Dernier message: 31/03/2006, 08h07
  4. Problème de lien sur date entre Access et MySQL-4.1
    Par michou42 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/04/2005, 23h31

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