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 :
Mais il peut très bien se résumer à :
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
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_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
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
Partager