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

VB 6 et antérieur Discussion :

Evenement MouseDown sur bouton


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Par défaut Evenement MouseDown sur bouton
    Bonjour à tous, je vous explique mon problème
    J'ai une combobox remplie avec des noms et un bouton à côté, quand l'utilisateur choisit un nom dans la combobox puis appuye sur le bouton ça fait une requête sur ma base pour trouver le numéro de téléphone associé à ce nom et ça l'affiche temporairement dans la combobox à la place du nom. Ensuite quand l'utilisateur relâche le bouton, le nom revient. J'utilise les évènements MouseDown et MouseUp pour ça.

    Ca marche, la requête est OK, le numéro s'affiche dans la combobox sauf... la première fois, juste après avoir choisi un nom puis cliqué sur le bouton ça affiche rien au lieu du numéro. Quand on clique une deuxième fois ça marche nikel et toutes les fois d'après aussi. Si entre le moment ou on a choisi un nom et celui ou on clique sur le bouton on va sur un autre contrôle ça marche aussi. Comme si juste après avoir choisi un nom il était pas "validé" en quelque sorte... Bref je comprends pas trop ! Je vous met le code :

    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
    Private Sub BtTelDest_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
        Dim rst As ADODB.Recordset
        Set rst = CreateObject("ADODB.Recordset")
        TempTelDest = ChDest.Text
        If (Not (ChDest.Text = "" Or ChDest.Text = "(Non précisé)")) Then
            rst.Open "SELECT E_GSM FROM Int_Employee WHERE E_Name = '" & ChDest.Text & "'", cn1, 3, 3
               If Not (rst.RecordCount = 0) Then
                   ChDest.Text = "" & rst.Fields("E_GSM")
               Else
                   ChDest.Text = ""
               End If
            rst.Close
        Else
            ChDest.Text = ""
        End If
    End Sub
    Mais il peut très bien se résumer à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub BtTelDest_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
        TempTelDest = ChDest.Text
        If (Not (ChDest.Text = "" Or ChDest.Text = "(Non précisé)")) Then ChDest = "TEST"
    End Sub
    Avec l'évènement MouseUp qui va avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub BtTelDest_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single)
        If (Not TempTelDest = "") Then ChDest.Text = TempTelDest
        TempTelDest = ""
    End Sub

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    sauf... la première fois
    Si ChDest et bien le contrôle ComboBox
    Apres chaque rempli du ComboBox, initialise le ListIndex, ChDest.ListIndex = 0
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Par défaut
    Ben non si je fais ça, ça me sélectionne le premier élément de la combobox quand elle perd le focus !

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    ProgElecT voulais surement dire -1.

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Par défaut
    Non ça marche pas non plus j'avais essayé en même temps que le 0. C'est vraiment bizarre comme problème je comprends pas du tout :/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 108
    Par défaut
    Déjà, simplifie le code (mmmh pleins de trucs inutiles).
    Si tu veux je te le fais :
    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
     
    Dim TempTelDest As String
     
    Private Sub BtTelDest_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
        Dim rst As ADODB.Recordset
        Set rst = CreateObject("ADODB.Recordset")
        TempTelDest = ChDest.Text
        If ChDest.Text <> "" Or ChDest.Text <> "(Non précisé)" Then
            rst.Open "SELECT E_GSM FROM Int_Employee WHERE E_Name = '" & ChDest.Text & "'", cn1, 3, 3
               If rst.RecordCount <> 0 Then
                   ChDest.Text = rst.Fields("E_GSM")
               Else
                   ChDest.Text = "Numéro de téléphone non trouvé"
               End If
            rst.Close
        Else
            ChDest.Text = ""
        End If
    End Sub
    Après, chez moi ça fonctionne très bien (en supprimant rst, et en remplaçant le texte par "TEST").
    Donc, si ça persiste, je ne peux pas t'aider désolé...

Discussions similaires

  1. Empecher evenement command sur bouton
    Par jedema dans le forum Tkinter
    Réponses: 3
    Dernier message: 29/04/2013, 03h40
  2. evenement different sur même bouton
    Par floriaan60 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 02/06/2008, 09h47
  3. Evenement assigné sur un bouton crée à la volée
    Par remibeginer dans le forum ASP.NET
    Réponses: 9
    Dernier message: 27/05/2008, 12h32
  4. Réponses: 2
    Dernier message: 18/02/2008, 11h30
  5. evenement sur bouton créé dynamiquement
    Par J@ckHerror dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/03/2007, 04h24

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