Doublons dans un combobox

cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022 - 23 avril 2007 à 08:40
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 - 23 avril 2007 à 09:57
Bonjour à tous,

Je voudrais eviter d'avoir des items en double dans mon combobox lors du chargement de ma base de donnée access
Je débute et je ne sais pas si il faut les supprimer lors du chargement de ma base ou si il faut un bout de code pour ne pas qu'ils apparaissent sur le combobox
Je ne sais pas trop comment m'y prendre
Merci pour votre aide
A+

6 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 avril 2007 à 08:44
Salut,

Et pourquoi ne pas éviter d'avoir directment des doublons dans ta base ?
Vérifier avant l'enregistrement si la donnée à y insérer existe ou pas...
A moins que tu es besoin d'avoir des doublons pour x raison ?

A+
Exploreur

 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 avril 2007 à 08:49
Salut,
Sinon tu fait un SELECT DISTINCT sur ton champs pour ne pas avoir de doublons (si je me souviens bien, c'est ce que fait DISTINCT)

@+: Ju£i?n
Pensez: Réponse acceptée
0
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
23 avril 2007 à 09:24
A la base j'ai essayé une boucle dans une autre avec un For Each mais par ex si il y a 2 doublons d'affilés et que je récupère leur index, ca va toujours me donné l'index du premier doublon donc je peux pas faire comme ça.

J'ai trouvé une alternative plus grossière, le combobox est cbTest et faudra mettre tout ça dans la procédure click d'un bouton  :

  Dim cResult(cbTest.Items.Count) As String

        For Each item As String In cbTest.Items
            cResult(cbTest.Items.IndexOf(item)) = item
        Next

        cResult.Sort(cResult)
        cResult.Reverse(cResult)

        Dim newindex As Integer

        For Each item As String In cResult
            If item Is Nothing Then
                newindex = cResult.IndexOf(cResult, item)
                Exit For
            End If
        Next

        cResult.ConstrainedCopy(cResult, 0, cResult, 0, newindex)
        Dim cnewResult(newindex - 1)
        cResult.ConstrainedCopy(cResult, 0, cnewResult, 0, newindex)
        cnewResult.Sort(cnewResult)
        cbTest.Items.Clear()
        cbTest.Items.AddRange(cnewResult)

        MsgBox("End Clear")

Voilà. Je pense que ca marche quelques soit les items de la combobox.

Redman
0
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
23 avril 2007 à 09:25
Salut
effectivement, j'ai besoin de ces doublons pour ma table
ce n'est pas plus simple de les enlever sur les combobox ?
A+
0

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

Posez votre question
cs_SEB73460 Messages postés 271 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 29 novembre 2022
23 avril 2007 à 09:29
Merci pour ta réponse Onehacker
Je vais essayer
A+
0
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
23 avril 2007 à 09:57
Justement c'est ce que j'ai essayé au dépat mais ca créer un problème c'est pour ça que j'ai choisi cette alternative moins propre mais qui marche au moins.

Redman
0
Rejoignez-nous