Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème activation Zone Texte par SetFocus ; impossible

4 réponses
Avatar
Laurent
Bonjour !

J'ai rencontré un problème bizarre. Dans certains cas d'utilisation d'un
formulaire, une activation d'un contrôle par SetFocus passe, ou fait planter
la procédure.

La situation dans laquelle ca passe, il y a derrière un traitement 100%
VBA
La situation pour laquelle ca ne passe pas, c'est presqe le même code qui
est utilisé, il y a en plus un filecopy, appel à un programme externe par
call shell et un filedatetime.

A la fin de cette procédure, je veux placer le focus sur une zone de texte
indépendante par un Me("2letter").SetFocus dans le formulaire
"Avions".
Le message d'erreur est : Erreur 2110 ; impossible d'activer le contrôle
"2letter".

Cette écriture est elle trop légère ? Cela serait il dû à une perte de
focus d'access par rapport au programme lancé depuis access ?
D'autant plus bizarre qu'il y a 6 mois, le problème ne se posait pas
(changement minime de code entre temps).

Un grand merci pour vos pistes ...

L@urent

4 réponses

Avatar
Raymond [mvp]
Bonjour.

ce message est typique d'un setfocus sur une image.
Me.Image1.SetFocus
ne provoque pas d'erreur de compil mais affiche cette erreur d'exécution.
vérifier le type de contrôle.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Laurent" a écrit dans le message de news:
443cad51$0$10517$
| Bonjour !
|
| J'ai rencontré un problème bizarre. Dans certains cas d'utilisation d'un
| formulaire, une activation d'un contrôle par SetFocus passe, ou fait
planter
| la procédure.
|
| La situation dans laquelle ca passe, il y a derrière un traitement 100%
| VBA
| La situation pour laquelle ca ne passe pas, c'est presqe le même code qui
| est utilisé, il y a en plus un filecopy, appel à un programme externe par
| call shell et un filedatetime.
|
| A la fin de cette procédure, je veux placer le focus sur une zone de
texte
| indépendante par un Me("2letter").SetFocus dans le formulaire
| "Avions".
| Le message d'erreur est : Erreur 2110 ; impossible d'activer le contrôle
| "2letter".
|
| Cette écriture est elle trop légère ? Cela serait il dû à une perte de
| focus d'access par rapport au programme lancé depuis access ?
| D'autant plus bizarre qu'il y a 6 mois, le problème ne se posait pas
| (changement minime de code entre temps).
|
| Un grand merci pour vos pistes ...
|
|
|
|
Avatar
Laurent
Merci pour la rapide réponse !

... mais ce contrôle pointe bien vers une zone texte, et ne peut à aucun
endroit de l'application pointer vers une image (d'ailleurs je n'en intègre
pas en interne).
Avant ce setfocus, il y a un call shell, cela pourrait être responsable ? Si
oui, quelle alternative pour lancer mon exécutable ?

Ne faut il pas utiliser une écriture extensive pour faire ce
Me("2letter").SetFocus, du type ;
me!formulaire("avions).("2letter").setfocus (syntaxe très certainement à
rectifier) ?

Merci encore ...





"Raymond [mvp]" a écrit dans le message
de news:
Bonjour.

ce message est typique d'un setfocus sur une image.
Me.Image1.SetFocus
ne provoque pas d'erreur de compil mais affiche cette erreur d'exécution.
vérifier le type de contrôle.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Laurent" a écrit dans le message de news:
443cad51$0$10517$
| Bonjour !
|
| J'ai rencontré un problème bizarre. Dans certains cas d'utilisation
d'un

| formulaire, une activation d'un contrôle par SetFocus passe, ou fait
planter
| la procédure.
|
| La situation dans laquelle ca passe, il y a derrière un traitement 100%
| VBA
| La situation pour laquelle ca ne passe pas, c'est presqe le même code
qui

| est utilisé, il y a en plus un filecopy, appel à un programme externe
par

| call shell et un filedatetime.
|
| A la fin de cette procédure, je veux placer le focus sur une zone de
texte
| indépendante par un Me("2letter").SetFocus dans le formulaire
| "Avions".
| Le message d'erreur est : Erreur 2110 ; impossible d'activer le
contrôle

| "2letter".
|
| Cette écriture est elle trop légère ? Cela serait il dû à une perte de
| focus d'access par rapport au programme lancé depuis access ?
| D'autant plus bizarre qu'il y a 6 mois, le problème ne se posait pas
| (changement minime de code entre temps).
|
| Un grand merci pour vos pistes ...
|
|
|
|




Avatar
Raymond [mvp]
si tu perds le focus dans ta procédure tu peux le remettre en le forçant
comme ceci:
Me.SetFocus
Me.[2letter].SetFocus

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum.
Inscrivez-vous à la Newsletter TechNet.
http://www.microsoft.com/france/technet/presentation/flash/default.mspx


"Laurent" a écrit dans le message de news:
443cc2d9$0$2139$
| Merci pour la rapide réponse !
|
| ... mais ce contrôle pointe bien vers une zone texte, et ne peut à aucun
| endroit de l'application pointer vers une image (d'ailleurs je n'en
intègre
| pas en interne).
| Avant ce setfocus, il y a un call shell, cela pourrait être responsable ?
Si
| oui, quelle alternative pour lancer mon exécutable ?
|
| Ne faut il pas utiliser une écriture extensive pour faire ce
| Me("2letter").SetFocus, du type ;
| me!formulaire("avions).("2letter").setfocus (syntaxe très certainement à
| rectifier) ?
|
| Merci encore ...
|
|
Avatar
Laurent
si tu perds le focus dans ta procédure tu peux le remettre en le forçant
comme ceci:
Me.SetFocus
Me.[2letter].SetFocus


J'ai essayé mais le problème ne vient pas de là ...
En fait, une case à cocher indique si la sous procédure setfocus doit se
faire ou pas. La case était en grisé, donc pas vrai, pas faux, et maintenant
ca va ... ouf !

Merci pour votre aide !