OVH Cloud OVH Cloud

Erreur d'execution 40036

6 réponses
Avatar
Mrs Pomemboo
Bonjour à tous,

J'ai une procédure qui me cause des problèmes et j'aimerais savoir si
vous avez déjà rencontré ce type d'erreur.

En Access 97 toujours, j'ai un formulaire de données pouvant contenir un
ou plusieurs sous-formulaires qui eux peuvent contenir aussi un
sous-formulaire. A l'ouverture du formulaire (pour tous les types de
données possible), j'utilise une procédure qui bouclent sur tous les
contrôles du formulaire pour les vérouiller. Quand je passe sur un
sous-formulaire, je débute une autre boucle et je passe aussi ses
contrôles, etc.

Toutefois, j'ai un de mes sous-formulaires qui me renvoit l'erreur
suivante "Erreur d'execution 40036: La méthode SetFocus de l'objet
_SubForm a échouée " alors que les autres ne génèrent pas cet erreur...
!

La ligne fautive... For Each ctl2 In ctl1.Form.Controls... qui pourtant
passe pour les autres...

Je n'ai aucun événement particulier sur le sous-formulaire en question,
ni dans mon formulaire principal.

Quelqu'un a un idéee ?

Merci à l'avance et bon début de weekend aux voisins d'outre-atlantique
! :-)

--
Mrs Pomemboo (Québec, Canada)
Charte : ...http://users.skynet.be/mpfa/ ...

6 réponses

Avatar
Pierre CFI
bonjour
tu dois avoir un controle qui n'a pas la méthose setfocus, une étiquette par
exemple ??

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Mrs Pomemboo" a écrit dans le message de news:

Bonjour à tous,

J'ai une procédure qui me cause des problèmes et j'aimerais savoir si
vous avez déjà rencontré ce type d'erreur.

En Access 97 toujours, j'ai un formulaire de données pouvant contenir un
ou plusieurs sous-formulaires qui eux peuvent contenir aussi un
sous-formulaire. A l'ouverture du formulaire (pour tous les types de
données possible), j'utilise une procédure qui bouclent sur tous les
contrôles du formulaire pour les vérouiller. Quand je passe sur un
sous-formulaire, je débute une autre boucle et je passe aussi ses
contrôles, etc.

Toutefois, j'ai un de mes sous-formulaires qui me renvoit l'erreur
suivante "Erreur d'execution 40036: La méthode SetFocus de l'objet
_SubForm a échouée " alors que les autres ne génèrent pas cet erreur...
!

La ligne fautive... For Each ctl2 In ctl1.Form.Controls... qui pourtant
passe pour les autres...

Je n'ai aucun événement particulier sur le sous-formulaire en question,
ni dans mon formulaire principal.

Quelqu'un a un idéee ?

Merci à l'avance et bon début de weekend aux voisins d'outre-atlantique
! :-)

--
Mrs Pomemboo (Québec, Canada)
Charte : ...http://users.skynet.be/mpfa/ ...



Avatar
Mrs Pomemboo
C'est certain ça. Mais c'est dans cette ligne là qu'il me génère mon
erreur et sinon, à aucun moment je n'utilise SetFocus dans ma procédure.
J'imagine que c'est lorsqu'il se déplace à l'aide du next qu'il tente de
passer le focus au prochain contrôle. Mais pourquoi ça fonctionnerait
bien dans un cas et pas dans l'autre, c'est ça la question. J'ai même
déjà posté quelque chose à ce sujet, que je croyais avoir réglé, mais
là, ça va pas ! Pourquoi il ne serait pas capable de passer le focus à
ce sous-formulaire là par l'emploie de ctl2.form.Controls alors que pour
les autres, c'est correct ! J'ai pas d'événement particulier qui
pourrait causer problème.

Je continue ma recherche !

--
Mrs Pomemboo (Québec, Canada)
Charte : ...http://users.skynet.be/mpfa/ ...

Raymond wrote:
|| Bonsoir.
||
|| d'après le message ce n'est pas le each qui pose problème mais le
|| setfocus, non ?
||
|| --
|| @+
|| Raymond Access MVP.
|| http://access.seneque.free.fr/
|| http://users.skynet.be/mpfa/charte.htm pour une meilleure
|| efficacité de tes interventions sur MPFA.
||
||
|| "Mrs Pomemboo" a écrit dans le message de
|| news:%
Avatar
Hubert Canevet
Bonjour,

Est-ce que des fois il n'y aurait pas une propriété
Enabled mis à False, quelque part ? Car si c'est le cas,
appliquer SetFocus au contrôle correspondant risque de
vous faire inviter à vous faire "voir chez les Grecs".

Je devrais peut-être me méfier de mon expression un peu
locale, moi. Dit autrement, SetFocus ne fonctionnera pas
si le contrôle n'est pas autorisé à la sélection (Enabled).

Si le sous-formulaire l'est, encore s'agit-il qu'au moins
un contrôle le soit, dessus.

Sachant que les autres messages ont déjà éliminé le cas du
sous-formulaire ne comportant que des étiquettes, auquel
cas Enabled serait ignoré.

-----Message d'origine-----
Bonjour à tous,

J'ai une procédure qui me cause des problèmes et
j'aimerais savoir si

vous avez déjà rencontré ce type d'erreur.

En Access 97 toujours, j'ai un formulaire de données
pouvant contenir un

ou plusieurs sous-formulaires qui eux peuvent contenir
aussi un

sous-formulaire. A l'ouverture du formulaire (pour tous
les types de

données possible), j'utilise une procédure qui bouclent
sur tous les

contrôles du formulaire pour les vérouiller. Quand je
passe sur un

sous-formulaire, je débute une autre boucle et je passe
aussi ses

contrôles, etc.

Toutefois, j'ai un de mes sous-formulaires qui me renvoit
l'erreur

suivante "Erreur d'execution 40036: La méthode SetFocus
de l'objet

_SubForm a échouée " alors que les autres ne génèrent pas
cet erreur...

!

La ligne fautive... For Each ctl2 In
ctl1.Form.Controls... qui pourtant

passe pour les autres...

Je n'ai aucun événement particulier sur le sous-
formulaire en question,

ni dans mon formulaire principal.

Quelqu'un a un idéee ?

Merci à l'avance et bon début de weekend aux voisins
d'outre-atlantique

! :-)

--
Mrs Pomemboo (Québec, Canada)
Charte : ...http://users.skynet.be/mpfa/ ...

.



Avatar
Mrs Pomemboo
Bien le bonjour,

Pour ceux que ça intéresse, j'ai finalement trouvé mon problème. Une
erreur dans la déclaration de mes variables et constantes de formulaires
rendaient le chargement impossible. C'est donc de cette façon qu'Access
a trouvé à me le dire... très explicite j'en convient !

Sur ce, morale de cette histoire, si t'as un erreur dans une procédure
quelconque, va donc voir ton formulaire avant de chercher plus loin...


Bonne journée !
Mrs Pomemboo


Mrs Pomemboo wrote:
|| Bonjour à tous,
||
|| J'ai une procédure qui me cause des problèmes et j'aimerais savoir si
|| vous avez déjà rencontré ce type d'erreur.
||
|| En Access 97 toujours, j'ai un formulaire de données pouvant
|| contenir un ou plusieurs sous-formulaires qui eux peuvent contenir
|| aussi un sous-formulaire. A l'ouverture du formulaire (pour tous les
|| types de données possible), j'utilise une procédure qui bouclent sur
|| tous les contrôles du formulaire pour les vérouiller. Quand je passe
|| sur un sous-formulaire, je débute une autre boucle et je passe aussi
|| ses contrôles, etc.
||
|| Toutefois, j'ai un de mes sous-formulaires qui me renvoit l'erreur
|| suivante "Erreur d'execution 40036: La méthode SetFocus de l'objet
|| _SubForm a échouée " alors que les autres ne génèrent pas cet
|| erreur... !
||
|| La ligne fautive... For Each ctl2 In ctl1.Form.Controls... qui
|| pourtant passe pour les autres...
||
|| Je n'ai aucun événement particulier sur le sous-formulaire en
|| question, ni dans mon formulaire principal.
||
|| Quelqu'un a un idéee ?
||
|| Merci à l'avance et bon début de weekend aux voisins
|| d'outre-atlantique ! :-)
||
|| --
|| Mrs Pomemboo (Québec, Canada)
|| Charte : ...http://users.skynet.be/mpfa/ ...
Avatar
Hubert Canevet
Affirmatif.

Pendant que nous sommes sur ce sujet, rappelons voir que
si l'ouverture d'un formulaire plante la base (GPF :
erreur de protection générale ; cette application va être
arrêtée car elle a ...), il y a lieu de créer une copie du
formulaire puis de détruire l'original.

Dans le détail :
- sur la fenêtre de base de données, sélectionner le
formulaire coupable
- presser Ctrl C
- presser Ctrl V
- comme nom mettre le début du nom du formulaire, ça
évitera d'avoir à parcourir les formulaires pour trouver
la copie
- valider
- sélectionner à nouveau le formulaire coupable
- presser F2 (= renommer), puis Ctrl C, puis Echappement
- presser Del, valider
- sélectionner la copie de formulaire qu'on vient de créer
- presser F2, puis Ctrl V, valider.

Et dans neuf cas sur dix, la base ne plante plus.

Bien entendu je parle du cas d'un formulaire qui
fonctionnait précédemment, et s'est subitement mis à tout
faire planter. Si il y a une erreur de syntaxe dedans,
c'est différent, et couramment un stop sur la première
instruction permet de voir quelle instruction pose
problème, en exécutant pas à pas par F8.

-----Message d'origine-----

Bien le bonjour,

Pour ceux que ça intéresse, j'ai finalement trouvé mon
problème. Une

erreur dans la déclaration de mes variables et constantes
de formulaires

rendaient le chargement impossible. C'est donc de cette
façon qu'Access

a trouvé à me le dire... très explicite j'en convient !

Sur ce, morale de cette histoire, si t'as un erreur dans
une procédure

quelconque, va donc voir ton formulaire avant de chercher
plus loin...



Bonne journée !
Mrs Pomemboo


Mrs Pomemboo wrote:
|| Bonjour à tous,
||
|| J'ai une procédure qui me cause des problèmes et
j'aimerais savoir si

|| vous avez déjà rencontré ce type d'erreur.
||
|| En Access 97 toujours, j'ai un formulaire de données
pouvant

|| contenir un ou plusieurs sous-formulaires qui eux
peuvent contenir

|| aussi un sous-formulaire. A l'ouverture du formulaire
(pour tous les

|| types de données possible), j'utilise une procédure
qui bouclent sur

|| tous les contrôles du formulaire pour les vérouiller.
Quand je passe

|| sur un sous-formulaire, je débute une autre boucle et
je passe aussi

|| ses contrôles, etc.
||
|| Toutefois, j'ai un de mes sous-formulaires qui me
renvoit l'erreur

|| suivante "Erreur d'execution 40036: La méthode
SetFocus de l'objet

|| _SubForm a échouée " alors que les autres ne génèrent
pas cet

|| erreur... !
||
|| La ligne fautive... For Each ctl2 In
ctl1.Form.Controls... qui

|| pourtant passe pour les autres...
||
|| Je n'ai aucun événement particulier sur le sous-
formulaire en

|| question, ni dans mon formulaire principal.
||
|| Quelqu'un a un idéee ?
||
|| Merci à l'avance et bon début de weekend aux voisins
|| d'outre-atlantique ! :-)
||
|| --
|| Mrs Pomemboo (Québec, Canada)
|| Charte : ...http://users.skynet.be/mpfa/ ...

.



Avatar
Mrs Pomemboo
Voir commentaires...

Hubert Canevet wrote:
| Affirmatif.
|
| Pendant que nous sommes sur ce sujet, rappelons voir que
| si l'ouverture d'un formulaire plante la base (GPF :
| erreur de protection générale ; cette application va être
| arrêtée car elle a ...), il y a lieu de créer une copie du
| formulaire puis de détruire l'original.
|
| Dans le détail :
| - sur la fenêtre de base de données, sélectionner le
| formulaire coupable
| - presser Ctrl C
| - presser Ctrl V
| - comme nom mettre le début du nom du formulaire, ça
| évitera d'avoir à parcourir les formulaires pour trouver
| la copie
| - valider
| - sélectionner à nouveau le formulaire coupable
| - presser F2 (= renommer), puis Ctrl C, puis Echappement
| - presser Del, valider
| - sélectionner la copie de formulaire qu'on vient de créer
| - presser F2, puis Ctrl V, valider.

Dans mon dernier recours, j'ai commencé par effectuer cette option,
faute de solution. Mais même là, comme tu le dis, un erreur de syntaxe
ne se règle pas de cette façon. C'est en voulant afficher ma copie en
mode formulaire que j'ai trouvé la ligne coupable alors que pourtant,
utilisé en tant que sous-formulaire, il s'affichait bien et sans erreur.
Ainsi, la ligne fautive était donc une référence au contrôle formulaire
parent, qui à première vue, ne fonctionne pas si l'on tente d'accèder à
ses contrôles par l'utilisation d'un For each ctl2 in
ctl.form.controls...

|
| Et dans neuf cas sur dix, la base ne plante plus.
|
| Bien entendu je parle du cas d'un formulaire qui
| fonctionnait précédemment, et s'est subitement mis à tout
| faire planter. Si il y a une erreur de syntaxe dedans,
| c'est différent, et couramment un stop sur la première
| instruction permet de voir quelle instruction pose
| problème, en exécutant pas à pas par F8.

Dans mon cas, Access ne me permettait que de me rendre à ligne fautive
For each ctl2 in ctl.form.controls. Puisqu'il ne pouvait parcourir le
formulaire, il s'arrêtait là et pas question de faire du pas à pas plus
loin...

L'important, c'est d'avoir trouvé... en passant, merci bien, c'est avec
ta réponse de ce matin que j'ai allumé :-)...

Bonne journée !
Mrs Pomemboo

|| -----Message d'origine-----
||
|| Bien le bonjour,
||
|| Pour ceux que ça intéresse, j'ai finalement trouvé mon problème. Une
|| erreur dans la déclaration de mes variables et constantes de
|| formulaires rendaient le chargement impossible. C'est donc de cette
|| façon qu'Access a trouvé à me le dire... très explicite j'en
|| convient !
||
|| Sur ce, morale de cette histoire, si t'as un erreur dans une
|| procédure quelconque, va donc voir ton formulaire avant de chercher
|| plus loin...
||
||
|| Bonne journée !
|| Mrs Pomemboo
||
||
|| Mrs Pomemboo wrote:
|||| Bonjour à tous,
||||
|||| J'ai une procédure qui me cause des problèmes et j'aimerais savoir
|||| si vous avez déjà rencontré ce type d'erreur.
||||
|||| En Access 97 toujours, j'ai un formulaire de données pouvant
|||| contenir un ou plusieurs sous-formulaires qui eux peuvent contenir
|||| aussi un sous-formulaire. A l'ouverture du formulaire (pour tous
|||| les types de données possible), j'utilise une procédure qui
|||| bouclent sur tous les contrôles du formulaire pour les vérouiller.
|||| Quand je passe sur un sous-formulaire, je débute une autre boucle
|||| et je passe aussi ses contrôles, etc.
||||
|||| Toutefois, j'ai un de mes sous-formulaires qui me renvoit l'erreur
|||| suivante "Erreur d'execution 40036: La méthode SetFocus de l'objet
|||| _SubForm a échouée " alors que les autres ne génèrent pas cet
|||| erreur... !
||||
|||| La ligne fautive... For Each ctl2 In ctl1.Form.Controls... qui
|||| pourtant passe pour les autres...
||||
|||| Je n'ai aucun événement particulier sur le sous- formulaire en
|||| question, ni dans mon formulaire principal.
||||
|||| Quelqu'un a un idéee ?
||||
|||| Merci à l'avance et bon début de weekend aux voisins
|||| d'outre-atlantique ! :-)
||||
|||| --
|||| Mrs Pomemboo (Québec, Canada)
|||| Charte : ...http://users.skynet.be/mpfa/ ...
||
|| .