Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur 430 : la classe ne gère pas automation ou l'interface attendue

Sly le globe trotter

XLDnaute Occasionnel
Bonjour,

Ce problème est souvent débattu sur internet mais je n'ai pas trouvé mon bonheur... Je m'en remets à vos compétences pour débloquer la situation

J'ai développé sur mon PC, un fichier Excel qui vient importer des informations d'une base de données Oracle. Jusque là tout va bien. Au fil des évolutions, je créé de nouvelles versions pour conserver un historique du travail.

Sur la dernière version, le fichier fonctionne sur mon poste mais sur aucun des postes des utilisateurs Une erreur 430 est générée avec le message "la classe ne gère pas automation ou l'interface attendue".
Le code plante sur la ligne
Code:
Set cnx = New ADODB.Connection
alors que cette commande est la même depuis de nombreuses versions, et qu'elle fonctionne d'ailleurs toujours sur les anciennes...

J'ai vérifié sur les postes en questions les références installées mais pas de différence avec celles installées sur mon poste...

Auriez-vous une idée svp ?
Merci beaucoup pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 430 : la classe ne gère pas automation ou l'interface attendue

Bonsoir,

essaye peut être ainsi :
Code:
Dim cnx As Object
Set cnx = CreateObject("ADODB.Connection")

bonne soirée
@+
 

Sly le globe trotter

XLDnaute Occasionnel
Re : Erreur 430 : la classe ne gère pas automation ou l'interface attendue

Bonjour Pierrot93,

Merci pour ta réponse. Je viens de la tester mais cela déplace le problème, en tout cas sur mon poste...
Au cas où cela puisse aider, voici la fonction qui me permet de me connecter à la base de données Oracle.

Code:
Public Sub ConnecterBaseOracle()

'ouverture connexion
If cnx Is Nothing Then
    If strConnectionString = "" Then
        strConnectionString = "Driver={Oracle dans OraClient10g_home1};Dbq=BNE_PROD;UID=test;PWD=test;Server=test;Database=BNE_PROD;"
    End If
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = strConnectionString
    cnx.Open
End If

End Sub

En suivant tes recommandations, le code plante un peu plus loin sur la partie suivante
Code:
    Dim rst As ADODB.Recordset 
...

    'ouverture d'une connexion le cas échéant puis requêtage
    Call ConnecterBaseOracle
...        
    'ouverture recorset
    Set rst = New ADODB.Recordset
    rst.Open strSql, cnx
à la ligne
Code:
rst.Open strSql, cnx

La variable cnx est égale à "" alors qu'elle a pour valeur "Provider=MSDASQL.1;" sans tes modifications. Du coup, je n'ai pas essayé sur les autres postes. Si ces informations peuvent être utiles, j'en serai ravi

Merci en tout cas pour ton aide
 

Pierrot93

XLDnaute Barbatruc
Re : Erreur 430 : la classe ne gère pas automation ou l'interface attendue

Bonjour,

il semble que l'initialisation de"cnx" ne soit pas dans la même procédure ?? peut être déclarer "cnx" en tête de module....
 

Sly le globe trotter

XLDnaute Occasionnel
Re : Erreur 430 : la classe ne gère pas automation ou l'interface attendue

Bonjour,

Je reviens sur un vieux sujet que j'ai lancé mais je sèche toujours... Tout fonctionne sur mon PC mais pas sur celui d'autres utilisateurs, étrange

Pour résumer, dans un module, je déclare cnx de la façon suivante:
Code:
Option Explicit
Public cnx As ADODB.Connection

Puis dans une fonction, je crée la connexion à la base Oracle
Code:
Public Sub ConnecterBaseOracle()

'ouverture connexion
If cnx Is Nothing Then
    If strConnectionString = "" Then
        strConnectionString = "Driver={Oracle dans OraClient10g_home1};Dbq=BNE_PROD;UID=test;PWD=test;Server=test;Database=BNE_PROD;"
    End If
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = strConnectionString
    cnx.Open
End If

End Sub

Comme je le disais sur mon PC, pas de problème, tout s'éxécute normalement mais sur celui d'autres utilisateurs, le code plante sur la ligne suivante :
Code:
Set cnx = New ADODB.Connection
et le message d'erreur suivant apparait : Erreur d'éxécution '430', la classe ne génère pas Automation ou l'interface attendue.

Merci pour votre aide
Sly
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…