Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2011, 17h47   #1
Invité de passage
 
Inscription : décembre 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 41
Points : 4
Points : 4
Par défaut Création d'un objet access en Excel (sans access)

Bonjour à tous,

je souhaite exécuter une fonction Access via mes macros Excel.

Pour cela je dois déclarer un objet pour ouvrir mon fichier .mdb et ensuite lui appeler la fonction.

Je n'ai aucun souci pour faire fonctionner ce code sur ma machine, par contre mon but final est de le faire fonctionner sur une machine sans Access.

Mon code est le suivant

Code :
1
2
Dim objDBase As Object 
Set objDBase = GetObject("c:\temp\MaBase.mdb")
Lorsque je mets ce code, j'obtiens l'erreur suivante :
Citation:
"Erreur d'éxecution 432 : Nom du fichier ou de la classe introuvable lors de l'opération d'automation
Quand je teste avec le code suivant

Code :
1
2
Dim objDBase As Object 
Set objDBase = GetObject("c:\temp\MaBase.mdb", "Acces.Application")
J'obtiens l'erreur suivante :
Citation:
Erreur d'éxecution 429 : Un composant activeX ne peut pas créer l'objet
J'ai bien réferencé mon fichier .olb permettant l'appel des objets access et la je commence à pautager bien comme il faut.

Ma fonction complete ce présente comme suit


Code :
1
2
3
4
5
6
7
8
9
Sub MaFonction
Dim appAccess As Access.Application
Dim objDBase As Object
Set objDBase = GetObject("c:\temp\zolart.mdb", "Acces.Application") 'lBdd)
 
Set appAccess = objDBase.Parent
Call appAccess.Run("IntegrFichier")
 
End sub
Est ce que quelqu'un aurait une idée pour soit passer la ligne qui plante, soit contourner le problème ?
Sachant qu'il n'est pas possible d'installer Access sur la machine devant exécuter ce code.

Merci d'avance pour votre retour
exopartners est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 07h45   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 607
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 607
Points : 30 955
Points : 30 955
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Ce que tu veux faire n'est pas possible (peut-être avec le Runtime, mais je ne connais pas).

Ton code est fait pour piloter Access, hors si Access n'est pas présent sur le poste ce n'est pas possible.

La seule chose que tu peux faire à partir d'Excel sur Access (sans Access mais uniquement le fichier mdb) c'est l'accès aux données en utilisation ADO ou DAO.

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.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/02/2011, 13h00   #3
Invité de passage
 
Inscription : décembre 2004
Messages : 41
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 41
Points : 4
Points : 4
Merci pour la réponse.
Du coup je parcours les lignes de mon fichier et je les intègre une après l'autre.

Ce qui au final n'est pas beaucoup plus long que d'appeler les fonctionnalités d'accès (sur une machine ayant access).
Pour 30.000 lignes cela prend 1 minute de plus.

Encore merci pour l'aide
exopartners est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h51.


 
 
 
 
Partenaires

Hébergement Web