Comment enlever le focus d'un controle [Résolu]

roromag 9 Messages postés mercredi 6 février 2008Date d'inscription 14 décembre 2010 Dernière intervention - 26 nov. 2010 à 09:13 - Dernière réponse : roromag 9 Messages postés mercredi 6 février 2008Date d'inscription 14 décembre 2010 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
roromag 9 Messages postés mercredi 6 février 2008Date d'inscription 14 décembre 2010 Dernière intervention - 14 déc. 2010 à 16:31
3
Merci
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

Merci roromag 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 100 internautes ce mois-ci

Commenter la réponse de roromag
jordane45 22890 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 19 octobre 2018 Dernière intervention - 26 nov. 2010 à 18:43
0
Merci
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
Commenter la réponse de jordane45
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 28 nov. 2010 à 15:15
0
Merci
salut,

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

++
[hr]
Commenter la réponse de PCPT
roromag 9 Messages postés mercredi 6 février 2008Date d'inscription 14 décembre 2010 Dernière intervention - 2 déc. 2010 à 14:19
0
Merci
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
Commenter la réponse de roromag
roromag 9 Messages postés mercredi 6 février 2008Date d'inscription 14 décembre 2010 Dernière intervention - 2 déc. 2010 à 14:21
0
Merci
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 ?
Commenter la réponse de roromag
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 2 déc. 2010 à 20:03
0
Merci
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

++
Commenter la réponse de PCPT

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.