Verification de ComboBox [Résolu]

Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention - 15 sept. 2004 à 14:10 - Dernière réponse : Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention
- 15 sept. 2004 à 22:04
Bonjour a tous!!

voila mon probleme:
dans un formulaire j'ai 20 combobox appele cbx_equipe(1)....cbx_equipe(20)
je les remplis avec les donnes contenu dans la table T_equipes ( :big) c un prog pour le classement de foot !!)

bon le probleme est que je voudrais verifier que se qui existe dans la cbx_equipe(i) n'existe pas ailleurs. J'espere que c assez clair ^^
en gros qu'une equipe ne soit presente qu'une seule fois par journée.....effectivement si on a un match OM-Lens il ne faut pas qu'il y ait OM-Monaco ou Lens-Lille......sa parait logique :big)
Afficher la suite 

7 réponses

Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 15 sept. 2004 à 17:51
+3
Utile
une API : c'et une fonction d'une des Dll de Windows....

ici, on utilise SendMessage, que l'on a declaré plus haut, pour que VB sache comment s'en servir.

pas besoin de 2 boucles, puisque Index renvoie le numéro du ComboBox utilisé.
Mon code permet d'empecher de saisir deux fois la même equipe.

le tiens serais plus pour vérifier les doublons a la validation du formulaire

le voici corrigé:

for i = 1 to 20
    for j = 1 to 20
        if i <> j then
            if cbx_equipe(i) = cbx_equipe(j) Then
                msgbox "Erreur" 
            end if
        end if
    next j
next i


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Cette réponse vous a-t-elle aidé ?  
Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention - 15 sept. 2004 à 14:14
0
Utile
merci d'avance

PS ya pas de fonction EDIT pour les messages???
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 15 sept. 2004 à 14:45
0
Utile
Pas de fonction EDIT.

Nix te dirait que "les paroles partent, les ecrits restent".

pour ta vérif, il te sufft de faire ce genre de test :

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
Private Const CB_SHOWDROPDOWN As Long = &H14F

Private Sub cbx_equipe_Click(Index As Integer)
    Dim i As Integer
    For i = 0 To cbx_equipe.Count - 1
        If i <> Index Then
            If cbx_equipe(i).ListIndex = cbx_equipe(Index).ListIndex Then
                cbx_equipe(Index).ListIndex = -1
                '# on ne peux pas fermer le Combo....
                SendMessage cbx_equipe(Index).hwnd, CB_SHOWDROPDOWN, 1, ByVal 0&
                Exit Sub
            End If
        End If
    Next i
End Sub


Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention - 15 sept. 2004 à 15:41
0
Utile
WAOU merci de repondre si vite !! c'est super sympa !!

sauf que je n'ai rien compris du tout la......je suis un petit amateur en VB et la .....je crois que je suis completement depasse !!
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 15 sept. 2004 à 15:48
0
Utile
Y'a pas de soucis, je vais tachen d'eclaircir un peu :

le code est placé dans l'evenement cbx_equipe_Click qui se declenche qd tu cliques dans ton combo.
Index renvoies l'indice du combo considéré...

je fait une boucle sur tous les combo du groupe pour tester la valeur selectionnée.

il s'agit de la propriété ListIndex; qui est -1 si rien n'est selectionné, autrement, il s'agit de l'indice de l'element selectionné...

je fais une simple comparaison, et s'il s'avère que l'un d'eux contient le même listindex que le combo qu j'ai cliqué, je deselectionne mon element dans mon combo, et je quitte la boucle...

j'ai ajouté un petit truc : le fameux SendMessage.
en fait, cette API permet ici de faire apparaitre la liste : le combo ne se ferme pas si l'element choisi n'est pas valide.

bon, je sais pas si ce que j'ai marqué est en francais jusqu'au bout ;-) mais bon...

Amusez-vous ! ;)
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS
Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention - 15 sept. 2004 à 17:00
0
Utile
oki merci

c'est bien en francais ne t'inquiete pas.... :)

mais je sais pas ce qu'est une API.....et va falloir que j'explique sa au prof et a mes collegue de Promo alors il vaudrait mieux que je comprenne tous !!

au debut j'ai fait plus ou moins comme toi avec des if...then...else et des boucles FOR mais il me faut 2 boucles et rien ne marche dans se ca !!

for i = 1 to 20
for j = 1 to 20
     if i = j then
          next j ===> la deja sa passe pas..
     else if cbx_equipe(i) = cbx_equipe(j)
          msgbox "Erreur" 
     else 
          next i
     end if


voila en gros (chuis au bureau la !! donc il doit manquer des lignes !) ce que j'ai fait la premiere fois.Comme sa marchait pas a la place du
for i = 1 to 20

j'ai mis une incrmentation manuelle (i = i +1) mais sa ne marche pas nonplus ....
Aratal 8 Messages postés mardi 27 juillet 2004Date d'inscription 17 septembre 2004 Dernière intervention - 15 sept. 2004 à 22:04
0
Utile
Merci beaucoup !!!!

erf y a pas de fonction citer non plus ??

tu a dit:
le tiens serais plus pour vérifier les doublons a la validation du formulaire

*vive le copier/coller :)*

en fait il aurait fallu que j'emploie les bons mots des le debut !!

merci encore 8-)

++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.