Enlever ou supprimer les doublons dans ma combobox

Résolu
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 25 sept. 2008 à 17:10
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 26 sept. 2008 à 08:27
bonsoir
voila je voudrais enlever ou supprimer les doublons dans ma combobox,
je sais qu'il faut mettre select DISTINCT mais je ne sais pas ou le placer.
ma base : centre_aéré
ma table : centre_aéré
mon champs : commune_ctr
pourriez m'aiguiller
merci
petchy

10 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 18:42
3
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 17:22
Salut,

vas voir ici tout y est expliqué
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
25 sept. 2008 à 18:21
Re
je suis en VB6 avec ACCESS
merci quand meme
petchy
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 18:27
L'utilisation des controles a une ou deux exection pres c'est du pareil au meme entre le VB6 et le VBA !

La syntaxe les methodes les propriétés c'est LA MEME CHOSE !

C'est incroyable cette segregation
0

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

Posez votre question
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 18:36
Private

Sub

UserForm_Initialize
()




<code class="vb_keyword1">    Dim
j
As
Integer
    '
Récupère
les
données
de
la
colonne
A...
    For
j
=
1
To
Range
(
"
A65536
"
)
.
End
(xlUp)
.
Row

        ComboBox1
=
Range
(
"
A
"
&amp;
j)
        '
...et
filtre
les
doublons
        If
ComboBox1
.
ListIndex
=
-
1
Then
ComboBox1
.
AddItem
Range
(
"
A
"
&amp;
j)
    Next
j
End
Sub
</code>

<code class="vb_keyword1">
</code>

<code class="vb_keyword1">Déjà que t'es pas capable de trouvé ce type d'info tout seul alors qu'il doit y avoir 1000 exemples rien que sur VBFrance
Alors interesse toi a ce qu'on te donne avant de repondre et n'attend pas systematiquement un truc tout fait !!!
</code>

<code class="vb_keyword1">
</code>

<code class="vb_keyword1">


</code>
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 18:47
D'ailleur tient regarde les langages associées au code snippet :



Langage :


VB6

,
VBA

Date ajout :
04/06/2008


Posté par Renfield[Liste]


DateMAJ :
04/06/2008


Private Const
CB_FINDSTRINGEXACT As Long = &H158
Private Const LB_FINDSTRINGEXACT As Long = &H1A2
 
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
 
Public Sub AddItem(ByRef voControl As Object, ByRef vsItem As String, Optional ByVal vnIndex As Variant, Optional ByVal vbRemoveDuplicates As Boolean = True)
Dim eMsg As Long
   If LenB(vsItem) Then
       If TypeOf voControl Is VB.ComboBox Then
           eMsg = CB_FINDSTRINGEXACT
       ElseIf TypeOf voControl Is VB.ListBox Then
           eMsg = LB_FINDSTRINGEXACT
       Else
           Err.Raise 5
           Exit Sub
       End If
       If vbRemoveDuplicates Then
           If SendMessage(voControl.hwnd, eMsg, -1, ByVal vsItem) >= 0 Then
               Exit Sub
           End If
       End If
       If IsMissing(vnIndex) Then
           voControl.AddItem vsItem
       Else
           voControl.AddItem vsItem, vnIndex
       End If
   End If
End Sub
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
25 sept. 2008 à 20:18
Re
c'est pas la peine de s'énerver,car j'avais déja fait une recherche et
c'est vrai qu'il y a pas mal exemples,mais c'est la syntaxe que je n'arrive pas à placer.
pour se qui est du code en VBA je ne pensait que ça pouvais s'adapter au VB6.
voila,donc je vais voir pour le code
merci
petchy
0
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
25 sept. 2008 à 21:17
Bonjour ,
Bigfish_le vrai , mal dormi à ce que je vois !
A notre age , on ne s'enerve plus.
A++
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
25 sept. 2008 à 21:38
Y a un peu de ça mais c'est surtout le decalage horaire ... non c'est surtout que je connais un petit peu l'amis petchy et je sais qu'en general il ne pose pas sa question completement. D'ailleur il l'a dit lui meme dans sa derniere reponse :

c'est vrai qu'il y a pas mal exemples,mais c'est la syntaxe que je n'arrive pas à placer.

donc ici le probleme n'est pas directement un probleme de doublon mais bien un probleme de comprehension de syntaxe d'une solution deja trouvé. Autrement dit il aurait été preferable qu'il poste un bout code qui corresponde a peu pres a sont besoin puis qu'il demande de l'aide pour l'adapter. Ce qui m'airait évité de l'envoyer vers quelque chose qui repondait pas a la vrai question. D'ailleur je le sentais venir c'est pour ça que je ne me suis pas attardé sur la réponse. Apres coup sa reponse ma donné raison et c'est sutout ça qui ma enervé.

Voila, desolé !
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
26 sept. 2008 à 08:27
bonjour
voila,j'ai mis le code de Mortalino,c'est nickel
Private Sub 
NoDupesInCombo(ByRef cbo As ComboBox)
    Dim i As Long, j As Long
    
    For i = 0 To cbo.ListCount - 1
        For j = cbo.ListCount - 1 To i + 1 Step -1
            If cbo.List(i) = cbo.List(j) Then cbo.RemoveItem (j)
        Next j
    Next iEnd Sub' *** Exemple d'appelle :Private Sub Form_Load()
    Call NoDupesInCombo(Me.C1)End Sub

merci à vous
@ plus
petchy
0
Rejoignez-nous