Choisir parmis des doublons

Résolu
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015 - 13 févr. 2008 à 15:11
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015 - 13 févr. 2008 à 16:32
Je veux modifier une donnée, j'utilise cette requete :sql "UPDATE trancheage SET Tranche '" & Me.Txt_1.Text & "' WHERE Tranche = '" & Me.donnee & "';"
'donnee est la donnée qui doit etre modifiée
'txt_1 est le texte à modifier

le problème est que si 2 (ou plus) de champs ont des doublons, ils vont se modifier aussi !
Et je ne veux pas que cela arrive !
Pouvez-vous m'aider à regler ce problème ?
Merci

13 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 15:42
elle peut pas être devinée, c'est évident.
tu dois la rappatrier lorsque tu remplis ta listbox, la conserver et être en mesure de la restituer pour la mise a jour.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 15:25
il te faut un identifiant....   la clé de la ligne concernée, par exemple

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 févr. 2008 à 15:26
Bonjour

Pourquoi tu n'utilises pas la clé primaire de l'enregistrement ?

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 15:37
Oui j'aurai du preciser,
donnee est récupérée à partir d'un élément d'une ListBox qui correspond à "Tranche"

Donc savoir quel est le numero clé primaire, je ne vois pas comment faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 15:43
"elle" => ta clé primaire

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 15:49
Donc aucune commande en SQL existe pour séléctionner une seule ligne parmis plusieurs identiques (par rapport à un champ) ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 15:50
pas si tu cherches toi a en cibler une précise....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 15:53
Ben justement je m'en fiche ici, je veux juste qu'un de ces doublons soit changé
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 15:59
en SQL, je vois pas, a moins d'imbriquer des query, peut etre...
sinon, tu dois pourvoir manipuler tes données dans ton code....

en VB6 on pourrais faire :

...
oRS.Find "Tranche=" & me.donnee
oRS.Fields("Tranche") = Txt_1.Text
oRS.Update
...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 16:18
je n'est pas rempli ma ListeBox avec un RecordSet (et je n'ai jamais réussi à le faire)
Donc par RecordSet, c'est mort, désolé. (et j'ai pas le temps surtout !)

Si on reprend ce que tu as dis : "elle peut pas être devinée, c'est évident.
tu dois la rappatrier lorsque tu remplis ta listbox, la conserver et être en mesure de la restituer pour la mise a jour."

Voici la méthode que j'ai utilisé pour remplir ma ListBox :
        Me.AccesBDD()
        sql = "SELECT Tranche FROM trancheage ORDER BY 1;"
        Dim Dta As New OleDbDataAdapter(Me.sql, Me.Conn)
        Me.Conn.Open()
        Dta.Fill(Me.Dts, "trancheage")
        Me.Dtt = Me.Dts.Tables("trancheage")
        Me.ListOcc.DataSource = Me.Dtt
        Me.ListOcc.DisplayMember = "Tranche"

Pour rappatrier, ca me parait difficile ^^, non ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 févr. 2008 à 16:20
non, pas sur:

        Me.AccesBDD()
        sql = "SELECT MaCle, Tranche FROM trancheage ORDER BY 1;"
        Dim Dta As New OleDbDataAdapter(Me.sql, Me.Conn)
        Me.Conn.Open()
        Dta.Fill(Me.Dts, "trancheage")
        Me.Dtt = Me.Dts.Tables("trancheage")
        Me.ListOcc.DataSource = Me.Dtt
        Me.ListOcc.DisplayMember = "Tranche"
        
normallement, MaCle restera dispo, mais là, faut voir avec un codeur .Net

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 16:26
que veux-tu dire par "MaCle" ?

Ok donc je poste dans un autre thème

Merci pour tes réponses
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
13 févr. 2008 à 16:32
Ah pardon j'avais pas remarqué que tu avais modifié ma requete (je me disais aussi)
OK je regarde ca
0
Rejoignez-nous