Erreur -2147417848 la méthode 'Value' de l'objet ComboBox a échoué ...
13 réponses
B
Bonjour,
J'ai toujours cette erreur sur un PC Sous Win2000pro et Access XP !
A l'insertion d'un nouvel enregistrement j'ai toujours le message " la
méthode 'value' de l'objet combo-box a échoué ".
Voici un bout de code :
'------ début code déconne -------
If Me!Copain.Value = "Toto" Then
Me!Notation.Value = 5
Else
Me!Notation.Value = 18
End if
'------ Fin code déconne -------
Bizarrement, ce code marche partout sauf sur un seul poste !
Avez-vous une idée ?
Merci.
Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et certains membres actifs de ce newsgroup dont j'ai malheureusement oublié le nom, je vous ai déjà signalé l'importance des références du projet VBA. Je me permets d'insister encore sur ce point parce que les références manquantes (ou mal inscrites dans la base de registre, ou dont la version sur le poste cible diffère de celle du développeur) constituent 99% des problèmes qui surviennent sur une station cible mais pas sur la station de travail du développeur.
C'est bien d'avoir décoché la référence inutile vers ADO (qui était cochée mardi dernier), mais ce serait encore mieux d'actualiser dans ce newsgroup la liste des références que vous avez conservées (en précisant le nom exact de chaque fichier référencé et sa version sur votre poste de développeur et sur le poste cible qui pose problème SVP). Peut-être pourriez-vous nous repréciser tout cela l'année prochaine dans une nouvelle conversation mais en un seul exemplaire (parce qu'Anor trouve, non sans raison, que ce post est redondant et trop volumineux) ?
L'avantage d'utiliser la syntaxe explicite Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le parcours de la liste des références lors de l'exécution de l'application. Cette syntaxe a déjà réglé un problème similaire au votre avec un combobox (même message d'erreur). J'ai aussi utilisé cette technique quand sur certains postes cibles l'appel des fonctions VBA échouait dans les modules à cause d'une référence manquante ou d'une version différente (par rapport au poste du développeur) du composant ActiveX référencé. Par exemple au lieu de "Date" on peut utiliser la syntaxe explicite "VBA.Date". Cette méthode est très utile dans le cas d'un fichier MDE, puisqu'un fichier MDE ne permet pas de rafraîchir les références.
Quant à mon autre suggestion qui consiste à remplacer la propriété Value par la propriété Text (alternative qui a déjà fait ses preuves dans un cas similaire avec un comboxbox et le même message d'erreur). Cette technique a l'avantage de retarder l'instant où la valeur du contrôle ComboxBox sera modifiée. Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par exemple cette technique peut fonctionner dans la procédure événementielle GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas le focus, vous pouvez quand même essayer d'utiliser cette technique en utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle ComboBox .
Je souhaite un Joyeux Noël à tous les membres du newsgroup, et plus particulièrement à ceux qui ont lu ce message intégralement :-)
Benoît Compoint
"" wrote in message news:
Bonsoir, Concernant la réf à ADO, elle était inutile et je l'ai virée ! C'était donc pas ça le problème. Remplacer .Value par .Text, je veux bien et j'essayerai à la rentrée chez le
"patron". Mais ce que je n'arrive pas à comprendre, personne ne semble pouvoir l'expliquer, c'est pourquoi entre 2 configs l'une marche et l'autre plante !
! ! Y'a qq chose qui m'échappe ; genre un peu surréaliste ... Quant au fait de remplacer Me!Etc... par Forms!NomduForm!Etc... j'ai vu de partout qu'on préconisai l'inverse, alors faudrait savoir ! Surréalisme, je vous dit ! Enfin, on verra bien à la rentrée. Bonne fêtes et merci à tous.
Bonsoir,
Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et certains
membres actifs de ce newsgroup dont j'ai malheureusement oublié le nom, je
vous ai déjà signalé l'importance des références du projet VBA.
Je me permets d'insister encore sur ce point parce que les références
manquantes (ou mal inscrites dans la base de registre, ou dont la version
sur le poste cible diffère de celle du développeur) constituent 99% des
problèmes qui surviennent sur une station cible mais pas sur la station de
travail du développeur.
C'est bien d'avoir décoché la référence inutile vers ADO (qui était cochée
mardi dernier), mais ce serait encore mieux d'actualiser dans ce newsgroup
la liste des références que vous avez conservées (en précisant le nom exact
de chaque fichier référencé et sa version sur votre poste de développeur et
sur le poste cible qui pose problème SVP).
Peut-être pourriez-vous nous repréciser tout cela l'année prochaine dans une
nouvelle conversation mais en un seul exemplaire (parce qu'Anor trouve, non
sans raison, que ce post est redondant et trop volumineux) ?
L'avantage d'utiliser la syntaxe explicite
Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le
parcours de la liste des références lors de l'exécution de l'application.
Cette syntaxe a déjà réglé un problème similaire au votre avec un combobox
(même message d'erreur).
J'ai aussi utilisé cette technique quand sur certains postes cibles l'appel
des fonctions VBA échouait dans les modules à cause d'une référence
manquante ou d'une version différente (par rapport au poste du développeur)
du composant ActiveX référencé.
Par exemple au lieu de "Date" on peut utiliser la syntaxe explicite
"VBA.Date".
Cette méthode est très utile dans le cas d'un fichier MDE, puisqu'un fichier
MDE ne permet pas de rafraîchir les références.
Quant à mon autre suggestion qui consiste à remplacer la propriété Value par
la propriété Text (alternative qui a déjà fait ses preuves dans un cas
similaire avec un comboxbox et le même message d'erreur). Cette technique a
l'avantage de retarder l'instant où la valeur du contrôle ComboxBox sera
modifiée.
Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par
exemple cette technique peut fonctionner dans la procédure événementielle
GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas
le focus, vous pouvez quand même essayer d'utiliser cette technique en
utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle
ComboBox .
Je souhaite un Joyeux Noël à tous les membres du newsgroup,
et plus particulièrement à ceux qui ont lu ce message intégralement :-)
Benoît Compoint
"B@rbbu" <NOdadpub@SPAMtiscali.fr> wrote in message
news:Or55O2WyDHA.2448@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Concernant la réf à ADO, elle était inutile et je l'ai virée !
C'était donc pas ça le problème.
Remplacer .Value par .Text, je veux bien et j'essayerai à la rentrée chez
le
"patron".
Mais ce que je n'arrive pas à comprendre, personne ne semble pouvoir
l'expliquer, c'est pourquoi entre 2 configs l'une marche et l'autre plante
!
! !
Y'a qq chose qui m'échappe ; genre un peu surréaliste ...
Quant au fait de remplacer Me!Etc... par Forms!NomduForm!Etc... j'ai vu de
partout qu'on préconisai l'inverse, alors faudrait savoir !
Surréalisme, je vous dit !
Enfin, on verra bien à la rentrée.
Bonne fêtes et merci à tous.
Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et certains membres actifs de ce newsgroup dont j'ai malheureusement oublié le nom, je vous ai déjà signalé l'importance des références du projet VBA. Je me permets d'insister encore sur ce point parce que les références manquantes (ou mal inscrites dans la base de registre, ou dont la version sur le poste cible diffère de celle du développeur) constituent 99% des problèmes qui surviennent sur une station cible mais pas sur la station de travail du développeur.
C'est bien d'avoir décoché la référence inutile vers ADO (qui était cochée mardi dernier), mais ce serait encore mieux d'actualiser dans ce newsgroup la liste des références que vous avez conservées (en précisant le nom exact de chaque fichier référencé et sa version sur votre poste de développeur et sur le poste cible qui pose problème SVP). Peut-être pourriez-vous nous repréciser tout cela l'année prochaine dans une nouvelle conversation mais en un seul exemplaire (parce qu'Anor trouve, non sans raison, que ce post est redondant et trop volumineux) ?
L'avantage d'utiliser la syntaxe explicite Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le parcours de la liste des références lors de l'exécution de l'application. Cette syntaxe a déjà réglé un problème similaire au votre avec un combobox (même message d'erreur). J'ai aussi utilisé cette technique quand sur certains postes cibles l'appel des fonctions VBA échouait dans les modules à cause d'une référence manquante ou d'une version différente (par rapport au poste du développeur) du composant ActiveX référencé. Par exemple au lieu de "Date" on peut utiliser la syntaxe explicite "VBA.Date". Cette méthode est très utile dans le cas d'un fichier MDE, puisqu'un fichier MDE ne permet pas de rafraîchir les références.
Quant à mon autre suggestion qui consiste à remplacer la propriété Value par la propriété Text (alternative qui a déjà fait ses preuves dans un cas similaire avec un comboxbox et le même message d'erreur). Cette technique a l'avantage de retarder l'instant où la valeur du contrôle ComboxBox sera modifiée. Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par exemple cette technique peut fonctionner dans la procédure événementielle GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas le focus, vous pouvez quand même essayer d'utiliser cette technique en utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle ComboBox .
Je souhaite un Joyeux Noël à tous les membres du newsgroup, et plus particulièrement à ceux qui ont lu ce message intégralement :-)
Benoît Compoint
"" wrote in message news:
Bonsoir, Concernant la réf à ADO, elle était inutile et je l'ai virée ! C'était donc pas ça le problème. Remplacer .Value par .Text, je veux bien et j'essayerai à la rentrée chez le
"patron". Mais ce que je n'arrive pas à comprendre, personne ne semble pouvoir l'expliquer, c'est pourquoi entre 2 configs l'une marche et l'autre plante !
! ! Y'a qq chose qui m'échappe ; genre un peu surréaliste ... Quant au fait de remplacer Me!Etc... par Forms!NomduForm!Etc... j'ai vu de partout qu'on préconisai l'inverse, alors faudrait savoir ! Surréalisme, je vous dit ! Enfin, on verra bien à la rentrée. Bonne fêtes et merci à tous.
3stone
Salut,
"Benoit Compoint [MS]" [...]
Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par exemple cette technique peut fonctionner dans la procédure événementielle GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas le focus, vous pouvez quand même essayer d'utiliser cette technique en utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle ComboBox .
J'en suis soulagé ;-)
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
Salut,
"Benoit Compoint [MS]"
[...]
Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par
exemple cette technique peut fonctionner dans la procédure événementielle
GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas
le focus, vous pouvez quand même essayer d'utiliser cette technique en
utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle
ComboBox .
J'en suis soulagé ;-)
--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/charte.htm
--------------------------------------
Cette technique suppose que le contrôle comboxbox Notation ait le focus. Par exemple cette technique peut fonctionner dans la procédure événementielle GotFocus associée à votre contrôle ComboBox. Si le contrôle ComboBox n'a pas le focus, vous pouvez quand même essayer d'utiliser cette technique en utilisant la méthode SetFocus avant d'invoquer la propriété Text du contrôle ComboBox .
J'en suis soulagé ;-)
-- A+ Pierre (3stone) Access MVP -------------------------------------- Une pour tous, tous pour une ;-) http://users.skynet.be/mpfa/charte.htm --------------------------------------
Anor
Bonjour Benoît,
Benoit Compoint [MS] : | | Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et | certains membres actifs de ce newsgroup dont j'ai malheureusement | oublié le nom
"3stone et Jessy", mvp tous les deux ;-))
| en un seul exemplaire (parce | qu'Anor trouve, non sans raison, que ce post est redondant et trop | volumineux) ?
chouette, je me suis fait remarquer par une personne de chez microsoft : 2 fois nommé :-))) ah bon, ça ne marche pas comme ça ? | | L'avantage d'utiliser la syntaxe explicite | Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le | parcours de la liste des références lors de l'exécution de | l'application.
Voila la réponse à la question que je me posais...
| Je souhaite un Joyeux Noël à tous les membres du newsgroup, | et plus particulièrement à ceux qui ont lu ce message intégralement | :-) | | Benoît Compoint |
Merci et Joyeux Noël également, je ne regrête pas d'avoir lu jusqu'au bout ;-)
-- à+ Arnaud -------------------------------------------------- *Avant toute chose* : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------
Bonjour Benoît,
Benoit Compoint [MS] <benoitc@online.microsoft.com> :
|
| Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et
| certains membres actifs de ce newsgroup dont j'ai malheureusement
| oublié le nom
"3stone et Jessy", mvp tous les deux ;-))
| en un seul exemplaire (parce
| qu'Anor trouve, non sans raison, que ce post est redondant et trop
| volumineux) ?
chouette, je me suis fait remarquer par une personne
de chez microsoft : 2 fois nommé :-)))
ah bon, ça ne marche pas comme ça ?
|
| L'avantage d'utiliser la syntaxe explicite
| Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le
| parcours de la liste des références lors de l'exécution de
| l'application.
Voila la réponse à la question que je me posais...
| Je souhaite un Joyeux Noël à tous les membres du newsgroup,
| et plus particulièrement à ceux qui ont lu ce message intégralement
| :-)
|
| Benoît Compoint
|
Merci et Joyeux Noël également, je ne regrête pas d'avoir lu jusqu'au bout ;-)
--
à+
Arnaud
--------------------------------------------------
*Avant toute chose* : http://users.skynet.be/mpfa/
Access Memorandum - http://memoaccess.free.fr
/Réponses souhaitées sur ce forum, merci/
--------------------------------------------------
Benoit Compoint [MS] : | | Comme Pierre ("Pierre CFI [mvp]"), Raymond (Raymond [mvp]), Anor et | certains membres actifs de ce newsgroup dont j'ai malheureusement | oublié le nom
"3stone et Jessy", mvp tous les deux ;-))
| en un seul exemplaire (parce | qu'Anor trouve, non sans raison, que ce post est redondant et trop | volumineux) ?
chouette, je me suis fait remarquer par une personne de chez microsoft : 2 fois nommé :-))) ah bon, ça ne marche pas comme ça ? | | L'avantage d'utiliser la syntaxe explicite | Forms!MyMainForm!MySubFormCtrl.Form!Notation.Value c'est d'éviter le | parcours de la liste des références lors de l'exécution de | l'application.
Voila la réponse à la question que je me posais...
| Je souhaite un Joyeux Noël à tous les membres du newsgroup, | et plus particulièrement à ceux qui ont lu ce message intégralement | :-) | | Benoît Compoint |
Merci et Joyeux Noël également, je ne regrête pas d'avoir lu jusqu'au bout ;-)
-- à+ Arnaud -------------------------------------------------- *Avant toute chose* : http://users.skynet.be/mpfa/ Access Memorandum - http://memoaccess.free.fr /Réponses souhaitées sur ce forum, merci/ --------------------------------------------------