Comment enlever le focus d'un controle

Résolu
roromag Messages postés 9 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 14 décembre 2010 - 26 nov. 2010 à 09:13
roromag Messages postés 9 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 14 décembre 2010 - 14 déc. 2010 à 16:31
Bonjour à tous !

J'espére que je poste au bon endroit, je suis un perdu dans cette multitude de sections

Je suis en train de faire un formulaire sous access 2003, et je récupère et enregistre les données de ce formulaire via VBA.

Les contrôles du formulaire (étiquettes, listes, zones de texte...) apparaissent au fur et à mesure que les précédents sont remplis.

Quand on valide, (via un clic sur bouton), les données sont enregistrés dans la base, et le formulaire est réinitialisé (les contrôles sont cachés à nouveau et leur valeur est remise à celles par défaut)

Mon problème, c'est que la procédure cachant les contrôles se déclenche sur clic sur le bouton valider, et du coup la procédure plante car elle ne peut pas cacher le bouton puisqu'il a le focus.

J'ai beau chercher, je ne trouve aucun moyen "d'enlever" le focus du bouton au moment de l’exécution de la procédure.

Auriez vous une astuce ?

6 réponses

roromag Messages postés 9 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 14 décembre 2010
14 déc. 2010 à 16:31
Salut,
juste au cas où ça puisse servir à quelqu'un un jour, voilà comment je m'y suis pris :

Sachant que tous mes contrôles doivent disparaître sauf "zl_reference_demandeur"
    Dim mon_controle As Control
    For Each mon_controle In Me
        If mon_controle Is Me.bt_valider Then
            If Me.zl_reference_demandeur.Visible = True Then
                Me.zl_reference_demandeur.SetFocus
            Else
                Me.zl_reference_demandeur.Visible = True
                Me.zl_reference_demandeur.SetFocus
            End If
        End If
        mon_controle.Visible = False
    Next


Voilà, c'est pas spécialement joli, je sais pas si c'est le mieux adapté, mais ça marche
3
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 344
26 nov. 2010 à 18:43
Bonjour,
As tu essayé de placer le focus ailleurs?
Par exemple sur un de tes controls qui lui n'est pas caché par ta macro ?

Regarde du côté de : .SetFocus

Private Sub Button1_click()

'Placement du Focus sur la TextBox1
Textbox1.SetFocus

'--- Suite du ton programme --
' ...tu caches tes contrôls...

End Sub


un 'truc' du genre pourrait surement t'aider.

Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 nov. 2010 à 15:15
salut,

exact il faut forcer le focus ailleurs. ex : poser une picturebox visible mais à une position x et y négative

++
[hr]
0
roromag Messages postés 9 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 14 décembre 2010
2 déc. 2010 à 14:19
Bonjour bonjour,
désolé j'étais pas mal occupé ces derniers jours.

En fait j'ai pas utilisé cette méthode avant car lorsque je "vide" mon formulaire, je fais un :

Dim mon_controle As Control
    For Each mon_controle In Me
        mon_controle.Visible = False
    Next


Du coup j'ai nul part où mettre mon focus ^^
C'est pas grave, je vais mettre une condition pour changer le focus si le controle sélectionné le posséde, mais j'espérais qu'il existe la possibilité de complétement enlever un focus, ce qui visiblement n'est pas possible.

Merci beaucoup
0

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

Posez votre question
roromag Messages postés 9 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 14 décembre 2010
2 déc. 2010 à 14:21
Désolé du double post, je vois pas comment éditer mon message précédent, dois-je signaler d'une quelconque manière le sujet comme résolu ?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 déc. 2010 à 20:03
si une ou plusieurs réponses ici conviennent tu peux les valider par le bouton "réponse acceptée".
sinon tu peux revenir plus tard pour indiquer ta manip et la valider à ce moment

++
0
Rejoignez-nous