OVH Cloud OVH Cloud

Urgent : la classe ne gére pas automation ou interface attendu

25 réponses
Avatar
Karine
Bonjour,
je n'est toujour pas resolu mon probleme concernant mon erreur 430 :
la classe ne gére pas automation ou interface attendu

cela devient urgent, j'ai maintenant 2 clients qui ne peuvent pas utiliser
le logiciel.
leur config : XP SP2 (es ce que cela provient du SP2 ?)
j'ai fais un test mais chez moi ca fonctionne.
le Mdac 2.8 à été installé, le 2.5, le 2.7 le 2.1 ...
je ne sais plus vers quelles pistes je doit aller.

cette erreur se produit au moment de la connexion :
Dim ADOConnection As ADODB.Connection
Set ADOConnection = New ADODB.Connection
Dim ADOSet As ADODB.Recordset
Set ADOSet = New ADODB.Recordset

j'utilise dans mon programme le jet 4.0
la dll installé est msado15.dll version 2.71.9030.0

merci d'avance de votre aide

10 réponses

1 2 3
Avatar
Patrick Philippot
Karine wrote:
et dans C:windowssystem32 la version est 2.71.9030.0

c'est le programme d'installation (installshield express) qui va
prendre tous les fichiers du programme pour les installer dans le
repertoire systeme et les enregistrer.



Il ne devrait pas. Il vaudrait mieux, à mon humble avis, configurer
installshield express (si possible) pour qu'il lance le MDAC en mode
silent, le MDAC étant systématiquement distribué avec votre application.
IS Express a été conçu bien avant les dernières modifications du MDAC et
bien avant le XP SP2. Tous ces problèmes ne sont pas pris en compte.

me conseil tu de supprimer le fichier que j'ai placer dans le
repertoire system et de réenregistrer les autres fichiers se trouvant
dans le repertoire commun ?



Oui. La version plus ancienne peut-être renommée ou supprimée mais ça ne
changera rien. Ce qui compte, c'est que les entrées dans la registry
pointent sur la bonne DLL. Par exemple, après ré-enregistrement des DLLs
dans le répertoire commun, la clé

HKEY_CLASSES_ROOTCLSID{00000507-0000-0010-8000-00AA006D2EA4}InprocServer32
(ADODB.Command)

devrait pointer sur la bonne version (dans le répertoire commun).

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Karine
j'ai testé ce que tu ma dis sur une machine ,

1-Renomé la dll du repertoire system32 en .old
2-Reenregistrer toutes les dll du repertoire commun ADO
3-j'ai rebooté
4-quand je lance mon appli j'ai un autre message,
cette fois ci il passe bien dans :
Dim ADOConnection As ADODB.Connection
Set ADOConnection = New ADODB.Connection
Dim ADOSet As ADODB.Recordset
Set ADOSet = New ADODB.Recordset

Par contre il plante :
ADOSet.Open "MATABLE", ADOConnection

le message est Invalid SQL Statement; expected 'DELETE', 'INSERT' ...

connais tu ce message ?

Merci de m'avoir repondu avec autant de precision cela m'a beaucoup aidé.

"Patrick Philippot" a écrit :

Karine wrote:
> et dans C:windowssystem32 la version est 2.71.9030.0
>
> c'est le programme d'installation (installshield express) qui va
> prendre tous les fichiers du programme pour les installer dans le
> repertoire systeme et les enregistrer.

Il ne devrait pas. Il vaudrait mieux, à mon humble avis, configurer
installshield express (si possible) pour qu'il lance le MDAC en mode
silent, le MDAC étant systématiquement distribué avec votre application.
IS Express a été conçu bien avant les dernières modifications du MDAC et
bien avant le XP SP2. Tous ces problèmes ne sont pas pris en compte.

> me conseil tu de supprimer le fichier que j'ai placer dans le
> repertoire system et de réenregistrer les autres fichiers se trouvant
> dans le repertoire commun ?

Oui. La version plus ancienne peut-être renommée ou supprimée mais ça ne
changera rien. Ce qui compte, c'est que les entrées dans la registry
pointent sur la bonne DLL. Par exemple, après ré-enregistrement des DLLs
dans le répertoire commun, la clé

HKEY_CLASSES_ROOTCLSID{00000507-0000-0010-8000-00AA006D2EA4}InprocServer32
(ADODB.Command)

devrait pointer sur la bonne version (dans le répertoire commun).

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Patrick Philippot
Karine wrote:
cette fois ci il passe bien dans :
Dim ADOConnection As ADODB.Connection
...
Par contre il plante :
ADOSet.Open "MATABLE", ADOConnection
le message est Invalid SQL Statement;
expected 'DELETE', 'INSERT' ...



Bon, voilà un problème de réglé.

Pour le suivant, est-ce que

ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
adCmdTable

fonctionne?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Patrick Philippot
Si l'argument source de RecordSet.Open n'est pas une commande SQL, il
faut préciser son type dans l'argument Optiosn (ici adCmdTable ou
adCmdTableDirect). Voir la doc.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Karine
>ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
adCmdTable



me renvoi l'erreur suivante :
"Record(s) cannot be read; no read permission on "MATABLE"


"Patrick Philippot" a écrit :

Karine wrote:
> cette fois ci il passe bien dans :
> Dim ADOConnection As ADODB.Connection
> ...
> Par contre il plante :
> ADOSet.Open "MATABLE", ADOConnection
> le message est Invalid SQL Statement;
> expected 'DELETE', 'INSERT' ...

Bon, voilà un problème de réglé.

Pour le suivant, est-ce que

ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
adCmdTable

fonctionne?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Patrick Philippot
Karine wrote:
ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
adCmdTable



me renvoi l'erreur suivante :
"Record(s) cannot be read; no read permission
on "MATABLE"



Alors là, c'est un problème de droits. Je n'y peux plus rien :-) . Il
faut vérifier les droits de l'utilisateur courant sur la source de
données.

Il y a vraiment une table qui s'appelle MATABLE dans cette base?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Karine
Effectivement, quand je me connecte sur une autre base cela fonctionne.

J'ai envoyé la solution au client concernant l'erreur Automation, j'attend
sa reponse.

merci pour ton aide, en tout cas mon prochain package je vais le faire mieu.

"Patrick Philippot" a écrit :

Karine wrote:
> ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
> adCmdTable

>me renvoi l'erreur suivante :
>"Record(s) cannot be read; no read permission
>on "MATABLE"

Alors là, c'est un problème de droits. Je n'y peux plus rien :-) . Il
faut vérifier les droits de l'utilisateur courant sur la source de
données.

Il y a vraiment une table qui s'appelle MATABLE dans cette base?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Karine
Je vient d'allé visiter ton site web, sympa.
j'ai vu que tu etait un ancien ingenieur IBM. moi je travail chez IBM
actuellement...

a+

"Patrick Philippot" a écrit :

Karine wrote:
> ADOSet.Open"MATABLE", ADOConnection, adOpenDynamic, adLockOptimistic,
> adCmdTable

>me renvoi l'erreur suivante :
>"Record(s) cannot be read; no read permission
>on "MATABLE"

Alors là, c'est un problème de droits. Je n'y peux plus rien :-) . Il
faut vérifier les droits de l'utilisateur courant sur la source de
données.

Il y a vraiment une table qui s'appelle MATABLE dans cette base?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Patrick Philippot
Karine wrote:
Je vient d'allé visiter ton site web, sympa.
j'ai vu que tu etait un ancien ingenieur IBM. moi je travail chez IBM
actuellement...



Ah oui? Sur quel site?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Karine
sur celui que tu met dans ta signature : www.mainsoft.fr

"Patrick Philippot" a écrit :

Karine wrote:
> Je vient d'allé visiter ton site web, sympa.
> j'ai vu que tu etait un ancien ingenieur IBM. moi je travail chez IBM
> actuellement...

Ah oui? Sur quel site?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr






1 2 3