ACCESS 2007 erreur sur clic bouton cmd

Fermé
bobobkk Messages postés 5 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 11 décembre 2007 - 7 déc. 2007 à 07:40
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 11 déc. 2007 à 10:12
Bonjour,

J'ai le probleme suivant sur ma base de donnees ACCESS.

Lorsque je lance un bouton de commande lie a du code, j'ai le message suivant qui apparait:

"L'expression sur clic entree comme parametre de propriete de type evenement est a l'origine d'une erreur. Un probleme est survenu durant la communication entre Microsoft Access et le serveur OLE ou le controle active X.
* Le resultat de l'expression n'est pas le nom d'une macro, le nom d'une fonction definie par l'utilisateur ou [event procedure].
* Une erreur a peut-etre ete commise lors de l'evaluation d'une fonction, d'une commande ou d'une macro."

En operant CTRL+SHIFT+I, j'obtiens le numero 502473 dans le message d'erreur, qui doit etre le numero de l'erreur d'apres un des posts que j'ai visite.

Autre chose etrange, au demarrage, la protection contre les macros est activee. Lorsque je lance un bouton lie a un etat, je ne rencontre aucun probleme.
En revanche, lorsque j'active les macros, le meme bouton ne reconnait plus un champ et m'en demande la valeur au moyen d'une message box:
"Entrer une valeur de parametre
Formulaires!services!service ID number xxx xxxx"
(xxx remplacant le nom de ma societe)

Voici des infos ou actions ayant surement genere cette erreur, et qui j'espere vous aideront a la resoudre:
- Je tourne sur Vista, avec Norton Internet Security (donc anti-virus + pare-feu)
- J'ai utilise ma base de donnees sans probleme pendant un mois
- Du a des problemes de ralentissement de mon ordi, j'ai reinstalle Windows dans sa config initiale, et j'ai reinstalle, Norton, et Microsoft Office 2007 version francaise (le meme qu'avant).
- J'ai copie ma base qui etait sauvegardee sur un disque externe
- Celle-ci ne comporte pas de table liee, tous les objets sous la meme base
- J'ai essaye de la recreer en important les tables puis les autres objets sans succes
- J'ai essaye d'ajouter des references dans VB concernant OLE et active X, sans succes.

J'a visite pas mal de posts avec des gens ayant un probleme similaire sur des versions ACCESS precedentes, mais aucune solution n'a semble etre trouvee.
Je patauge et j'ai un besoin urgent car j'utilise cette DB pour mon travail.

Merci d'avance pour votre aide,

6 réponses

phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
11 déc. 2007 à 10:12
Peut-être c'est une soluce. Sinon, ça m'étonnerai pas que ce sooit lié aux accents et compagnie, mais qui est-ce qui peut savoir. Si tu crées une nouvelle base (Access se casse quand-même facilement la gueule) ça pourrait aider aussi (ça me rappelle Access97, j'ai du réparer + ou - une fois par semaine)
3
Avant tout : "Formulaires!services!service ID number xxx xxxx", il ne trouve pas le champs Formulaires!services!service ID number xxx xxxx. Cela peut arriver quand c'est vraiment "Formulaires!services!service ID number xxx xxxx". Logiquement un éspace blanc est un séparateur de string. Il faut donc mettre tout ce qui est bizarre en [] (mais stp sois gentil est n'utilise pas d'accents, blanc, et tout autre chose qui n'est pas défini en ASCII 7 bit caractères. Ca augmente la portabilité et ça évite de bêtes pb comme ça. Aussi, nous vivons dans un monde mutlilingue. Et ne pas tout le monde parle français, par contre l'anglais c'est le langage de l'ordi. Et tant que tu reste avec l'anglais t'auras pas de pb de ce genre). Bref Formulaires!services![service ID number xxx xxxx] devrait déjà régler le 1er pb.

Puis la compile sert seulement à vérifier qu'il trouve vraiement toutes les références. Plutot vérification. Ca ne sert pas à grande chose de compiler en Access.

D'où vient l'erreur avec l'ActiveX ? D'après ce que je vu sur google (pas grande chose, mais...) on utilisait aussi Nz comme fonction. Peut-tu la remplacer par un IsNull ?
1
phil232 Messages postés 607 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 31 janvier 2008 178
7 déc. 2007 à 13:47
pourrait tu lancer un compile tous les modules ? A-tu regardé si dans les propriétés du bouton le nom de la macro/du module y est toujours ?
0
bobobkk Messages postés 5 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 11 décembre 2007
8 déc. 2007 à 07:58
Salut Phil232,

Merci pour ta reponse.

Je n'ai pas vraiment saisi ton conseil qui consiste a compiler les modules: je me debrouille pas trop mal sur access, mais tout ce qui est VB, c'est de la bidouille que je calque sur le net ou sur de precedentes DB. A quoi cela sert-il de compiler les modules?

J'ai quand meme fait l'action suivante sous VB: Menu Debug / compile "DBxxx". Mais ca n'a rien change.

Voici l'exemple d'un ligne de code d'un des boutons m'affichant mon fameux message:
Private Sub calculate_total_cost_Click()

Me.transport_cost = Nz(Me.plane_cost, 0) + Nz(Me.taxi_cost, 0) + Nz(Me.train_cost, 0) + Nz(Me.own_car_cost, 0)
Me.cost_of_inspection = Round(Me.mandays * Me.price_of_1_manday + Nz(Me.hotel_fee, 0) \ Me.exchange_rate + Nz(Me.transport_cost, 0) \ Me.exchange_rate)
Me.refoundable_expenses = (Nz(Me.transport_cost, 0) + Nz(Me.hotel_fee, 0)) \ Me.exchange_rate
Me.net_income = Me.mandays * Me.price_of_1_manday

End Sub


Lorsque je suis dans les proprietes du bouton, onglet evenement, et que je clique sur les 3 ... de la procedure evenementielle, il me place de suite sur le code correspondant dans VB. J'en deduis donc qu'il sait aller chercher le code.


Quand aux boutons relies a des macros, en voici un exemple:
Action:
OuvrirEtat
Argument:
quotation, Aperçu avant impression, , , Standard


J'ai verifie la requete liee a l'etat:
C'est le critere qui pose probleme: lorsque je l'enleve, la requete m'affiche correctement toutes mes lignes d'enregistrement, et meme en recreant le critere a l'aide du generateur, il est incapable de trouver le champ lui-meme dans le formulaire et m'en demande la valeur.

Je suis perplexe!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobobkk Messages postés 5 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 11 décembre 2007
10 déc. 2007 à 19:08
Salut Phil,

Merci pour ton conseil, j'avais arrete d'utiliser les _ au profit des blancs pour m'eviter de renommer les titres des champs a chaque fois.

Quand a l'utilisation de l'anglais, je n'ai pas vraiment le choix car je ne dispose que d'un clavier QWERTY + thai sans accent, et que ma base de donnees est amenee a etre utilisee par des non francophones.
Toute trace de francais est donc lie a Access qui lui est en francais (je regrette d'ailleurs la version anglaise que j'avais toujours utilise auparavant).

L'expression "Formulaires!services!service ID number xxx xxxx" m'est affichee par access dans la message box.
Dans ma query, le critere est le suivant: [forms]![services]![service ID number xxx xxxx], et lorsque je recree mon critere avec le generateur, il change evidemment cela en francais ([Formulaires]![Services]![service ID number xxx xxxx]). Mais il est toujours incapable de trouver ma valeur de champ (la form etant bien entendue ouverte en mode Form).

Rapport aux accents, tous les noms de mes labels portent le nom xxx_etiquette, avec l'accent sur le 1er "e" (crees automatiquement...).
J'ai lu le post de quelqu'un qui disait qu'il avait change les noms et que depuis ca marchait. Comme quoi les accents sur les lettres majuscules posaient problemes. J'avais donc renomme tous les champs d'un formulaire mais je n'avais pas eu de resultats.
Ce qui m'etonne, c'est que ca ait marche comme cela pendant un mois, et qu'apres mes manips de formatage etc.., cela ne marche plus.

Quand a renommer la fonction ca ne donne rien. Meme lorsque je remplace le code par un simple: Msgbox "Hello", il me place le meme message d'erreur.

Un autre indice cependant: les Subform de ma database me posent aussi probleme.
Lorsque j'essaie d'updater des champs du sous formulaires, j'ai la message box suivante: "Le parametre de la propriete champsperes est a l'origine de l'erreur suivante: Un probleme est survenu durant la communication entre Microsoft Access et le serveur OLE ou le controle active X", soit quasiment le meme message sans explication (et le numero d'erreur 502472).

Qu'est-ce que ce probleme de communication Access / serveur OLE - Controle Active X? Est-ce qu'un probleme pendant l'installation de Office aurait pu creer cette erreur. Dois-je reinstaller Office?

Merci encore pour ton aide.
0
bobobkk Messages postés 5 Date d'inscription jeudi 11 octobre 2007 Statut Membre Dernière intervention 11 décembre 2007
11 déc. 2007 à 05:21
Salut, c'est encore moi

J'ai trouve sur le net quelqu'un qui avait un probleme similaire.

La reponse donnee est la suivante:
J'ai eu le même problème sur plusieurs PC, j'ai beaucoup cherché sur Internet mais je n'ai pas trouvé de solution.
Alors après plusieurs tentatives, j'ai pu le résoudre en remplaçant le fichier "Stdole2.tlb" (24 ko).

Je me suis apercu que ce fichier est la reference VB pour OLE automation. Est-ce une solution fiable? Si oui comment se procurer la bonne version de ce fichier?

Merci,
0