|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre régulier
![]() ![]() |
Bonjour à tous !
Depuis ce matin, je seche sur la communication entre excel et access. Il y'a bien des FAQ et des Tutoriaux, mais aucun ne répond à mon probleme. Voila la description: J'ai crée une appli sous access (toto.mbd), qui envoie des données vers Excel. Un fichier tata.xls s'ouvre donc automatiquement et l'utilisateur effectue d'autre manipulation dessus, jusqu'a (imprimer) et fermer ce fichier par le biais d'un bouton procédural, et juste avant la fermeture du fichier (tata.xls), Excel communique avec la base access (toto.mdb) en exécutant une requete d'action qui va faire un INSERT INTO dans une des tables avec des données contenu dans des cellules du fichier tata.xls. Jusque la, pas de probleme, j'arrive a répondre a mes attentes sans trop de souci et avec du code VBA sur toto.mdb et tata.xls, en effet j'ai effectuer l'ensemble de mes phase de test avec succes sur un poste possedant Access 2003 et Excel 2003. (mon poste de travail). Par contre, mon souci viens du fait que je dois aussi faire fonctionner ces 2 fichiers sur des poste en Windows XP, qui possede Excel 2003, mais qui n'ont pas Access ... J'ai donc déployer sur un poste de test (ne possedant pas Access donc), le Runtime Microsoft access. et voila mes résultats: Apres installation avec succes du Runtime, le fichier toto.mdb deviens exécutable. Je l'ouvre, et j'obtiens bien ma communication avec tata.xls (qui s'ouvre aussi). J'effectue mes manip sur tata.xls, et au final, qd je clique sur le bouton qui va lancer la requete SQL INSERT INTO contenu dans toto.mdb, j'obtiens un message d'erreur : Citation:
Je l'active donc sur Excel mais pas sur access, car je n'ai toujours pas access sur le poste de test, et par l'intermédiaire du Runtime, on doit pas avoir access a VBA editor. Meme apres l'installation de la référence DAO3.6 sur excel, j'ai toujours le meme probleme. J'ai aussi essayer de rajouter des références du type Microsoft ActiveX vX.X, sous excel, mais toujours rien ... ------------------------------------- J'en déduit avec défétisme que l'on ne peut pas communiquer d'excel (tata.xls) vers "access" (toto.mdb) ou plutot le runtime access. Je laisse en commentaire mon code VBA sous excel, qui me permet de lancer la requete SQL sous toto.mdb Code :
Je rappel, que la meme manip fonctionne parfaitement entre Excel et Access , si access et non pas le Runtime est installé Quelqu'un a t'il une idée pour résoudre mon probleme ??? |
|||
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 47 ![]() |
salut
il semblerait que la fonction OpenCurrentDatabase ne fonctionne pas avec le runtime (ca fonctionne qu'avec la version complete d'access) essaye d'utiliser plutot : OpenDatabase qui se trouve dans la librairie DAO (n'oublie donc pas d'ajouter cette reference) |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() ![]() |
Merci à toi de répondre aussi rapidement!
J'ai ajouter sous excel la librairie Microsoft DAO3.6, mais comment on utilise cette fonction ? J'ai tester MonAccess.Opendatabase ca marche pas :s si t'as un exemple d'utilisation ca serait sympa |
|
|
00
|
|
|
#4 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 47 ![]() |
Code :
ca pourrait t'interesser: http://www.developpez.net/forums/sho...d.php?t=269383 |
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() ![]() |
ok merci!
je vais tester, si ca marche, je tagg le post. Bonne continuation ! |
|
|
00
|
|
|
#6 | ||||
|
Membre régulier
![]() ![]() |
OK, bon deja j'ai plus le message d'erreur "erreur d'éxécution 429, un composant activeX ....."
donc ca me rassure de savoir cette métohde compatible avec le runtime Access. Par contre, je ne connais que tres peu la programation DAO, comment est ce que je pourrai lancer l'exécution a partir de tata.xls, d'un module sur toto.mdb comprennant 2 arguments. avec mon ancienne méthode qui ne fonctionne pas avec le runtime, j'avais ce code la: Code :
Avec ta méthode DAO, j'imagine que c'est un truc dans le style, mais y me manque la suite: Code :
|
||||
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() ![]() |
j'ai regarder le lien vers le tuto de cafeine que tu a posté, c'est pas mal mais ca ne répond pas a mes besoins, étant données que le tuto permet de récupérer des donner de access vers excel, tandis que moi je veux envoyer des données de excel vers access en lancant une procédure contenu dans un module du fichier access.
j'ai essayé de regarder les différents possibilités qu'offre l'objet DAO.database, mais je n'ai rien vu qui me permet d'éxécuter a distance une procédure. |
|
|
00
|
|
|
#8 |
![]() ![]() |
Salut
DAO te permettra de travaillere sur les données, pour lancer une procédure il va falloir passer par automation pour contrôler Access depuis Excel. Regarde dans le moteur de recherche du site à GETOBJECT pour prendre possesion d'Access, et regarde aussi dans la faq VBA. Par contre je ne sais pas si cela fonctionnera avec le runtime. Starec
__________________
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. |
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 47 ![]() |
le Run est une méthode d'Access.Application pas de la database
dao.database ne te propose que des methodes pour effectuer des requetes pas des procédures donc essaye comme ca: Code :
|
||
|
|
00
|
|
|
#10 | ||||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 47 ![]() |
ca ne devrait pas marcher :/
sinon Code :
Code :
on ne pourra pas utiliser opencurrentdatabase ni newcurrentdatabase :/ |
||||
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() ![]() |
j'ai tester ton idée, ca ne marche pas, la ligne :
MonAccess.CurrentDb = db est en surbrillance, avec l'erreur : Errreur de compilation : Utilisation incorrecte de la propriété On ne peut vraiment pas exécuter une procédure a partir de DAO.database ??? il doit y avoir un méthode qui équivaut au Run de Access.application non ? |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() ![]() |
réponse a Shoruy:
Oui, ca revient au meme, c'est la meme instanciantion mais écrit de 2 manieres différentes :s |
|
|
00
|
|
|
#13 | ||||
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 47 ![]() |
ayant cherché un peu le probleme sur le net
j'ai trouvé 2 façons, je sais pas si elles fonctionnent mais bon : lancer d'abord la base grace a l'executable runtime d'access avec shell() et apres utilise getobject() Code :
ou : Code :
|
||||
|
|
00
|
|
|
#14 | ||
|
Membre régulier
![]() ![]() |
OK, j'ai trouver une autre solution pour répondre a mes problemes.
J'utilise simplement : Code :
Je vous remercie tous les 2 pour votre implication dans mon probleme, bonne continuation a vous. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com