|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Bonjour,
À force de m'arracher les cheveux, il ne m'en reste plus alors je viens vers vous. J'ai un formulaire contenant des données relatives à des élèves, chaque élève étant identifié par un code. Je veux pouvoir positionner le formulaire sur un élève en particulier à partir du code. Pour cela, j'ai créé un champ où on saisit le code, puis on clique sur le bouton à côté. Voici une capture d'écran de mon formulaire (la partie intéressante, plus exactement) : ![]() (pour le nommage des contrôles, vous avez le droit de me lapider, mais pour l'instant je n'y suis pas) Dans mon code VBA associé à l'événement "clic" de mon bouton (Commande546), je veux bien sûr accéder à la valeur contenue dans le champ texte (Texte544). Pour cela, j'écris ce code : Code :
Pour voir, j'ai essayé de voir si, en faisant appel à un autre champ, l'effet serait différent : - En créant un nouveau champ texte, et en faisant l'adaptation nécessaire au niveau du code (Me.Textexxx.Value), une autre erreur est provoquée, erreur 91 : "Variable objet ou variable de bloc With non définie" (alors que bien sûr le champ existe). De mieux en mieux. - En accédant à un champ déjà créé dans le formulaire et lié à la table qu'exploite le formulaire (et qui possède le même masque de saisie que mon champ censé contenir le critère de recherche), aucun problème. Voilà où j'en suis, si vous avez une idée je suis tout ouïe, car vraiment là je n'ai plus d'idée... Merci de votre lecture, Alain
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
||
|
|
00
|
|
|
#2 | |
![]() ![]() |
Bonjour
Essayes d'importer tout dans une autre base. Citation:
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Merci pour ce conseil,
Malheureusement ça n'a pas marché avec moi. J'ai essayé d'utiliser l'outil d'importation d'Access, mais j'ai aussi essayé de faire manuellement le copier-coller de tous les objets de la base de données. Ni l'une ni l'autre, aucune de ces tentatives ne m'a donné satisfaction. Je reste donc à l'écoute de vos propositions, Alain
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() |
Bonjour,
Il m'est arrivé bien souvent ce genre de mésaventure. Dans un premier temps ce que je fais, c'est que je supprime le contrôle qui pose problème, je ferme et enregistre le formulaire et je le recrée(le contrôle)...et lui réaffecte les procédures qui lui sont propres (car elles restent écrites dans le VBa) ...à tester! 2e chose, quelle est le type de champ dans ta table affectée à la valeur qui se trouve dans ton contrôle? |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Bonjour Orakle,
J'ai testé ta méthode, mais ça n'a pas fonctionné. Access ne plante plus mais me refait l'erreur dont j'ai déjà parlé, erreur 91 : "Variable objet ou variable de bloc With non définie". Le champ sur lequel je veux baser ma recherche est de type texte. Mais de toute façon, si je n'arrive pas à récupérer la valeur... (par ailleurs, en codant en dur une valeur pour faire ma recherche, ça marche très bien avec la commande DoCmd.SearchForRecord).
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() |
Ton erreur indique qu'une variable utilisée dans ton code n'a pas été déclarée, mais ça ne veut pas forcément dire que c'est celle où ton code s'arrête, ça peut être plus bas(ailleurs) aussi.
Pourrais-tu nous donner ton code plus au complet? Et si d'autres variables il y a nous montrer leur déclarations également? |
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Dans la mesure où je recherchais l'erreur, j'ai mis tout le code qui vient après en commentaire. Donc on peut dire que mon code se résume maintenant à ceci :
Code :
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() |
Bonjour,
Cela est peut-être du à un problème d'accès au fichier et tout ce qui le constitue. Compile le projet depuis le menu Debogage dans un premier temps... Compacte la base de données dans un second temps... Qu'est ce que ça donne ? Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Bonjour argyronet,
J'ai fait ce que tu m'as dit de faire, le débogage a trouvé une erreur mais pas à cet endroit (c'était du code qui était resté, lié à d'autres contrôles supprimés, donc qui n'avait pas de chance d'être exécuté et que j'ai néanmoins supprimé). J'ai compacté la base. Mais l'erreur 91 est toujours là. Alors, si vous avez d'autres idées...
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#10 | |
![]() ![]() ![]() |
Une autre idée...
Il n'y a pas de raisons apparentes à ce que ça plante. Mais du fait que vous ayez écrit Citation:
Quelles sont les références du projet ? Y en a t-il des manquante ? Et si vous créez un formulaire vierge avec ces 2 mêmes contrôles et le même code... qu'est ce que ça donne ? Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
J'ai testé ce que ça donnait en créant un formulaire vierge dans lequel j'ai créé les deux contrôles (le champ texte et le bouton), puis en mettant le même code, et c'est passé. J'ai ensuite supprimé ces deux contrôles dans le nouveau formulaire pour, à la place, faire un copier-coller des deux contrôles qui posent problème dans mon formulaire principal. Donc je les ai remis tels quels, j'ai aussi mis le code qu'il fallait, et ça passait.
Pour le code "en trop", j'ai fait le nettoyage, donc il ne doit pas y avoir de souci. En tout cas, le débogueur ne me signale pas le moindre problème. Une autre idée ?
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() |
humm, n'avez-vous pas un contrôle ou un objet nommé "critere" quelque par ?
Y a t-il un Option Explicit dans la page de la classe du formulaire ? Si non, posez-le et réessayez.... Si ça marche dans un formulaire vierge c'est qu'il existe une saleté dans le formulaire concerné et il faut la trouver. D'ici, on ne peu rien voir. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#13 | ||
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Merci pour l'Option Explicit, je ne connaissais pas...
Du coup j'ai décrassé pas mal de code mort. Pour autant, la compilation passe correctement, mais j'ai toujours le même problème... Et sinon, non, je n'ai pas d'autre objet critere que celui que j'utilise dans mon code. D'ailleurs, mon code pour contrôler l'accès à la valeur du champ, je l'ai simplifié pour être sûr que rien d'autre n'entre en jeu : Code :
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
||
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : avril 2007 Messages : 123 ![]() |
au lieu de ?
|
|
|
00
|
|
|
#15 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Essayé, mais pas plus de réussite. J'ai l'impression que c'est le contrôle Texte558 qui n'est pas reconnu, pourtant à la saisie il m'assiste quand je tape "Me." il me suggère Texte558 (entre autres) et après me suggère Text ou Value (parmi d'autres propriétés) pour Texte558. C'est à n'y rien comprendre.
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#16 |
|
Membre éprouvé
![]() Robert LINCEConseiller psycho-pédagogique Inscription : octobre 2007 Messages : 279 ![]() |
Bonjour tout le monde.
On est bien dans un formulaire principal? Le champ Texte558 n'est pas dans un sous-formulaire? |
|
|
00
|
|
|
#17 |
|
Nouveau Membre du Club
![]() Enseignant Inscription : janvier 2004 Messages : 60 ![]() |
Bonjour RobiPMS,
Oui, on est bien dans le formulaire principal. Mais qu'importe, j'ai trouvé une autre solution, qui consiste à utiliser une liste déroulante. Je ne suis pas fier de cette solution, c'est l'assistant d'Access qui a tout fait à ma place. Et puis, du coup, je ne sais pas d'où venait mon problème, mais ça fait ce que je veux et je vais m'en satisfaire. Dernière chose, à tous ceux qui m'ont filé un coup de main, m'ont soufflé une idée, je vous remercie chaleureusement. Et puis, même si ça n'a pas résolu mon problème, j'ai quand même pas mal appris (je retiens le Option Explicit) donc rien de tout ce fil a été inutile.
__________________
On s'amuse de rien en vieillissant, on vieillit quand on ne s'amuse plus. |
|
|
00
|
|
|
#18 | ||||
![]() ![]() ![]() |
Alain,
J'ai déjà eu un problème similaire ; En fait le problème est survenu de lui-même et je pense que c'est une faille. Vous pouvez vous amuser à tenter de reproduire un cas similaire en écrivant quelque part dans votre code un paramètre ou une propriété qui porte le même nom qu'une méthode ou qu'un contrôle existant or de la classe du formulaire bien sûr. => A titre d'exemple, j'ai eu une fois le mot Left qui s'écrivait dans l'ensemble du code en majuscule avec impossibilité de l'inscrire en NomPropre soit Left au lieu de LEFT une fois la base compilée à cause d'un Code :
Donc votre contrôle doit peut-être s'appeler Texte_558 ou quelque chose comme ça ce qui fait qu'il lève une erreur inhérente à votre demande du contenu de ce contrôle ; essayez donc ceci (juste pour voir): Code :
Argy P.S. Ne rouvrez le débat que si vous trouvez une nouvelle piste par rapport à mon message. Ce n'est pas utile pour ma part d'étendre le sujet davantage si ce n'est pour tenter de comprendre.
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com