Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 19h18   #1
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Par défaut setfocus sur listbox et flèches directionnelles

Bonjour,

j'ai un problème assez pénible à vous soumettre. Sur un formulaire, j'ai deux listbox. Un clic sur l'une met à jour l'autre. Du style :

Code :
1
2
3
Private Sub LB1_Click()
Me.LB2.RowSource = sql
End Sub
Or je veux pouvoir passer d'une ligne à l'autre en utilisant les flèches directionnelles. La définition du RowSource passant le focus au contrôle concerné, j'ai logiquement ajouté un SetFocus sur le contrôle d'origine. Problème : bien que la LB1 soit bien le contrôle actif après le setfocus (vérifié avec un ActiveControl), il n'est pas possible d'utiliser les flèches pour naviguer dans le contrôle.

Merci d'avance pour vos lumières.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 20h33   #2
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour
Ce n'est pas facile de comprendre ton pb tel que expliqué;mais j"essaye quand meme; en gros:
1/LB2 doit se mettre à jour en fonction du choix effectué dans LB1;
2/Au lieu d'un click sur LB1, tu voudrais plutot utiliser les flèches haut et bas du clavier pour naviguer entre les éléments (de LB1).
Ai-je compris?

@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 20h39   #3
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

excuse-moi si je n'ai pas été clair. Mais je n'en suis pas sûr, parce que tu as bien compris Merci en tout cas pour ta réponse.

A noter que l'utilisation des flèches directionnelles ne pose pas de problème en soi : l'événement onClick se déclenche bien si on les utilise. Ce qui ne fonctionne pas, c'est l'utilisation de ces flèches après le LB2.RowSource = toto, même avec un LB1.SetFocus

J'ajoute à mon premier post qu'un ami qui travaille sous 2010 m'a dit qu'il n'avait pas le problème. Ce qui n'est pas pour me rassurer.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 10h03   #4
Membre Expert
 
Avatar de keita
 
Homme
Inscription : novembre 2002
Messages : 879
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Côte d'Ivoire

Informations forums :
Inscription : novembre 2002
Messages : 879
Points : 1 015
Points : 1 015
Envoyer un message via MSN à keita
bonjour à tous
ok; essai comme ceci pour voir:
1/enlève le setfocus partout
2/J'espère que que ton sql de LB2 ressemble à quelque chose de ce genre:
Code :
sql = "SELECT........... WHERE .... champUnTel = " Me.LB1
3/change ton code:
Code :
1
2
3
Private Sub LB1_Click()
    Me.LB2.Requery
End Sub
Un click sur LB1 et le reste avec les touches. ça devrait marcher.
@+
keita est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 14h06   #5
Membre confirmé
 
Avatar de spaiku
 
Chef de projet MOA
Inscription : septembre 2007
Messages : 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2007
Messages : 191
Points : 250
Points : 250
Bonjour,

le problème est résolu. Il venait d'une ligne de code qui donnait le focus au LB2 en début de traitement. J'avais donc quelque chose comme ça :

Code :
1
2
3
LB2.SetFocus
Traitement...
LB1.SetFocus
Autrement dit, modifier le RowSource d'un ListBox ne lui donne pas le focus pour autant, comme je le pensais au départ. Merci keita, c'est en cherchant tous mes SetFocus comme tu me l'as suggéré que je suis tombé sur celui qui posait problème.

Enseignements pour plus tard :
- Ecrire du code plus lisible
- Commenter davantage
- Sous 2007, si une ListBox perd le focus puis le reprend, les flèches directionnelles ne sont pas utilisables. A voir sous 2010.
spaiku est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h43.


 
 
 
 
Partenaires

Hébergement Web