OVH Cloud OVH Cloud

Err d'exécution 2455

5 réponses
Avatar
pat.nowac
J'ai cr=E9=E9 une appli. qui marche tr=E8s bien sur ma machine.
Apr=E8s l'avoir install=E9e sur un autre poste, l'erreur=20
suivante s'affiche :
La r=E9f=E9rence d'une expression =E0 la propri=E9t=E9 Form/report=20
n'est pas valide.
Cette erreur se produit sur la ligne suivante :
Set Recordset =3D Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset
Apparemment,=E7a vient de la r=E9f=E9rence au formulaire du=20
contr=F4le sfrm_COMMANDES.

Quelqu'un peut-il m'aider ?
Merci par avance.

5 réponses

Avatar
Benoit Compoint [MS]
Bonjour,

Je ne sais pas si c'est la cause de votre problème, mais vous devez éviter
de donner à une variable le nom d'un type de données.

Votre code VBA utilise la variable "Recordset" alors que ce nom est réservé
pour la classe (le type de données) "Recordset".
Ce nom "Recordset" est même doublement réservé, puisque c'est aussi le nom
de la propriété "Recordset" d'un formulaire ou un état.

Benoît Compoint

"pat.nowac" wrote in message
news:035301c3c9aa$0f201550$
J'ai créé une appli. qui marche très bien sur ma machine.
Après l'avoir installée sur un autre poste, l'erreur
suivante s'affiche :
La référence d'une expression à la propriété Form/report
n'est pas valide.
Cette erreur se produit sur la ligne suivante :
Set Recordset = Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset
Apparemment,ça vient de la référence au formulaire du
contrôle sfrm_COMMANDES.

Quelqu'un peut-il m'aider ?
Merci par avance.
Avatar
pat.nowac
Mon pb est d'un autre ordre, puisque ce prog fonctionne
sur ma machine.
-----Message d'origine-----
Bonjour,

Je ne sais pas si c'est la cause de votre problème, mais
vous devez éviter

de donner à une variable le nom d'un type de données.

Votre code VBA utilise la variable "Recordset" alors que
ce nom est réservé

pour la classe (le type de données) "Recordset".
Ce nom "Recordset" est même doublement réservé, puisque
c'est aussi le nom

de la propriété "Recordset" d'un formulaire ou un état.

Benoît Compoint

"pat.nowac" wrote in message
news:035301c3c9aa$0f201550$
J'ai créé une appli. qui marche très bien sur ma machine.
Après l'avoir installée sur un autre poste, l'erreur
suivante s'affiche :
La référence d'une expression à la propriété Form/report
n'est pas valide.
Cette erreur se produit sur la ligne suivante :
Set Recordset = Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset
Apparemment,ça vient de la référence au formulaire du
contrôle sfrm_COMMANDES.

Quelqu'un peut-il m'aider ?
Merci par avance.



.



Avatar
Benoit Compoint [MS]
Une des caractéristiques des problèmes causés par les noms réservés est
qu'ils ne surviennent pas systématiquement.
Il est fort possible qu'un problème de "nom réservé" survienne sur une
machine X mais pas sur une machine Y.

Cela dit, je répète ce que j'ai déjà écrit hier soir dans une autre
conversation dans ce newsgroup :
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.

Peut-être pourriez-vous nous préciser la liste exhaustive des références de
votre projet VBA, 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 ?

Si le renommage de votre variable "Recordset" en "R" ne résoud pas ce
problème, essayez d'utiliser une syntaxe plus explicite.
Par exemple, au lieu de :

dim R as Recordset
...
Set R= Forms!frm_COMMANDES!sfrm_COMMANDES.Form.Recordset

Utilisez :

dim R as DAO.Recordset
...
Set R= Application.Forms!frm_COMMANDES!sfrm_COMMANDES.Form.Recordset

Ou utilisez :

dim R as ADODB.Recordset
...
Set R= Application.Forms!frm_COMMANDES!sfrm_COMMANDES.Form.Recordset

Benoît Compoint
Avatar
pat.nowac
Merci pour votre aide.
J'essaierai vos propositions dès que possible.
Concernant les références, ce sont exactement les mêmes
sur les 2 postes.
Je vous tiens au courant.

-----Message d'origine-----
Une des caractéristiques des problèmes causés par les
noms réservés est

qu'ils ne surviennent pas systématiquement.
Il est fort possible qu'un problème de "nom réservé"
survienne sur une

machine X mais pas sur une machine Y.

Cela dit, je répète ce que j'ai déjà écrit hier soir dans
une autre

conversation dans ce newsgroup :
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.

Peut-être pourriez-vous nous préciser la liste exhaustive
des références de

votre projet VBA, 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 ?

Si le renommage de votre variable "Recordset" en "R" ne
résoud pas ce

problème, essayez d'utiliser une syntaxe plus explicite.
Par exemple, au lieu de :

dim R as Recordset
....
Set R= Forms!frm_COMMANDES!sfrm_COMMANDES.Form.Recordset

Utilisez :

dim R as DAO.Recordset
....
Set R= Application.Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset


Ou utilisez :

dim R as ADODB.Recordset
....
Set R= Application.Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset


Benoît Compoint


.



Avatar
pat.nowac
Voila , j'ai essayé de modifier le nom du Recordset par
une variable non réservée, mais le résultat est le même.
En fait, l'erreur se produit également sur la ligne
suivante:
me.sfrm_COMMANDES.Form.AllowAdditionsúlse

Voici les références utilisées:
VB or Applications
Microsoft Access 9.0 Obj Lib
OLE Automation
Microsoft DAO 3.6 Obj Lib

Le poste utilisateur est sous Win98 alors que le miens est
sous Win2000. Y a-til une corrélation ?
-----Message d'origine-----
Une des caractéristiques des problèmes causés par les
noms réservés est

qu'ils ne surviennent pas systématiquement.
Il est fort possible qu'un problème de "nom réservé"
survienne sur une

machine X mais pas sur une machine Y.

Cela dit, je répète ce que j'ai déjà écrit hier soir dans
une autre

conversation dans ce newsgroup :
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.

Peut-être pourriez-vous nous préciser la liste exhaustive
des références de

votre projet VBA, 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 ?

Si le renommage de votre variable "Recordset" en "R" ne
résoud pas ce

problème, essayez d'utiliser une syntaxe plus explicite.
Par exemple, au lieu de :

dim R as Recordset
....
Set R= Forms!frm_COMMANDES!sfrm_COMMANDES.Form.Recordset

Utilisez :

dim R as DAO.Recordset
....
Set R= Application.Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset


Ou utilisez :

dim R as ADODB.Recordset
....
Set R= Application.Forms!frm_COMMANDES!
sfrm_COMMANDES.Form.Recordset


Benoît Compoint


.