|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() François Développeur informatique Inscription : janvier 2010 Messages : 65 ![]() |
Bonjour,
Je rencontre le même problème qu'ici avec peut-être quelques précisions. Le phénomène se produit lors de la fermeture de certains formulaires (pas tous mais toujours les mêmes) et ce, quel que soit la méthode de fermeture :
Enfin ce phénomène se produit systématiquement sur des postes Win 7 32 bit mais pas sur les postes Win 7 64 bits ni sur XP sp3. Ma config : Application .ADE sur runtime 2010, données SQL Server 2008 En espérant que ça aidera et que quelqu'un pourra nous fournir une solution ou, à défaut, une explication. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
Il y a également la FAQ où on peut trouver des choses interessantes. http://access.developpez.com/faq/?pa...DesactAcpsLock http://access.developpez.com/sources...rs#APICapsLock En déduire le numlock n'est pas difficile. C'est le code 144 soit &H90 en hexa. (F2 dans le VBE) Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() François Développeur informatique Inscription : janvier 2010 Messages : 65 ![]() |
Bonjour,
Enfin du nouveau pour essayer d'éclairer notre lanterne: je parviens à reproduire le problème sur une construction simplifiée dans une base Access 2010. je précise que je suis confronté au problème dans un projet 2010 mais il s'avère que l'anomalie est comparable dans une base de données Access. Tout semble venir du fait que, pour assurer la fin de saisie du contrôle texte courant, j'envoie systématiquement une suite de touches Tab et maj+Tab avant d'appeler une éventuelle procédure de validation de saisie du formulaire. Si je supprime la séquence Tab et maj+Tab il n'y a pas de modification de l'état du pavé numérique. Pour reproduire le problème : Téléchargez et décompactez le fichier VerNum.zip joint. Je travaille avec un antivirus à jour (Eset-node32). si access 2010 est ouvert fermez toutes les occurences Lancez Access Ouvrez la base VerNum.acdb normalement à partir du Backstage access Ouvrez le formulaire "Menu" Cliquez sur le bouton [Affiche fenêtre] Lorsque la fenêtre est ouverte appuyez sur la touche [F4], la fenêtre disparait, la première fenêtre réapparait et l'indicateur de verrouillage numérique du clavier change d'état - mais pas celui de la barre d'information d'Access! Le phénomène se reproduit à chaque fermeture de la fenêtre "enfant" tant que l'on a pas fermé au moins une fois la fenêtre "Menu". Il semble également que l'anomalie ne se produise que lors de la première ouverture de la base dans access: si on ferme la base en gardant Access ouvert puis qu'on réouvre la base le phénomène ne se reproduit pas. Si, dans les mêmes circonstances, on utilise la touche [F5]pour fermer le formulaire il n'y a pas de modification de l'état de verrouillage du pavé numérique. La Touche [F4] exécute sendKeys "{TAB}+{TAB}" avant de masquer la fenêtre, la touche [F5] ne le fait pas (voir la fonction FermerEnfant() du formulaire Menu ) Modes affichage testés : - Documents à Onglets - Fenêtres superposées Je vais donc supprimer sendKeys "{TAB}+{TAB}" de mon application mais il va me rester le problème d'être sur que la zone en cours sera bien saisie car l'utilisation du ruban ne valide pas la zone en cours... Merci à tous, François |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Bonjour,
Citation:
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() François Développeur informatique Inscription : janvier 2010 Messages : 65 ![]() |
Le sendkeys me permet d'assurer que la saisie en cours d'un contrôle actif de texte est bien complète avant de commencer la procédure de validation du formulaire courant.
Cette précaution est rendue nécessaire par le fait que la fermeture du formulaire est déclenchée par un bouton personnalisé du ruban et qu'il s'avère que l'accès au ruban en cours de saisie d'un contrôle texte ne conclue pas cette saisie. En exécutant ce double TAB je suis sur que la saisie du champ courant est terminée et aura éventuellement déclenché ses propres événements de validation avant la procédure de validation du formulaire. Je suis bien évidemment preneur d'une méthode moins "barbare" que je dois de toute façon abandonner, ce qui va me provoquer des problèmes de validation ! |
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Je pense que la meilleure "pratique" consiste à utiliser les événements du formulaire qui vont bien.
Pour tout ce qui est test de saisie ou de plausibilité, Avant Maj est pour moi le plus approprié. Exemple : Code :
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
||
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() François Développeur informatique Inscription : janvier 2010 Messages : 65 ![]() |
Pas dans mon cas car je veux procéder à des contrôles AVANT l'événement form_beforeupdate.
Hors, je n'ai pas encore eu le temps de vérifier et ça ne sera plus pour aujourd'hui, mais il me semble que l'état .dirty du formulaire n'est pas modifié tant que la zone de texte en cours de saisie (à supposer que ce soit le premier champ modifié) n'est pas validée. |
|
|
00
|
|
|
#8 | |
![]() ![]() |
Non, le formulaire est modifié dès que tu saisis un caractère, par exemple...
Citation:
Mais pour te répondre de manière plus pertinente, il faudrait que tu détailles plus précisément ce que tu désires faire avant d'enregistrer les données courantes de ton formulaire. Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor) Ici, on ne perd pas de temps ! On en passe... Ce message (ou un autre) vous a aidé ? Votez pour lui avec
|
|
|
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : avril 2004 Messages : 1 ![]() |
A mon avis la fonction, "SendKey" est buggée.
J'ai une solution qui fonctionne avec Acces 2007 et Windows Vista. Code :
Et pour les puristes qui ne manqueront pas de poser la question, j'utilise cette fonction en lieu et place de "Langue clavier" de la zone de texte parce que j'utilise un clavier belge et que "Langue Clavier" me restaure un clavier français et qu'il y a des différences de touches entre les deux types de clavier. Maintenant, il reste à voir si cette librairie "User32" est disponible sur tous les systèmes d'exploitation |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com