ADO: créer une liaison entre access et excel. [Résolu]

daveneo 9 Messages postés mercredi 10 août 2005Date d'inscription 3 novembre 2005 Dernière intervention - 22 août 2005 à 13:03 - Dernière réponse : Tuning Max 316 Messages postés mercredi 15 juin 2005Date d'inscription 31 août 2006 Dernière intervention
- 24 août 2005 à 09:31
Intitulé:
J'utilise access comme base de données de départ et excel pour faire des calculs complexes.


Je veux créer une relation entre ma bdd access et mon fichier excel pour insérer de nouvelles données comme un nouvel employé dans mon fichier excel.


Question:
Comment dois-je procéder en utilisant ADO?
Je voudrais avoir un exemple concret car je n'arrive pas solutionner ce problème de relation entre les deux logiciels.


merci d'avance.
Afficher la suite 

7 réponses

Ninette08 56 Messages postés mardi 16 août 2005Date d'inscription 14 septembre 2005 Dernière intervention - 22 août 2005 à 14:41
+3
Utile
en ADO, je sais pas ,par contre en rajoutant le référence excel, tu peux faire comme ca :

Dim AppliExcel As Excel.Application
Dim Class As Workbook
Dim Feuil As Worksheets

Set AppliExcel = CreateObject("Excel.Application")
Set Class = AppliExcel.Workbooks.Open(Chemin)

AppliExcel.Workbooks("etat.xls").Worksheets("feuil1").Activate
......
AppliExcel.Quit
Set AppliExcel = Nothing
Set Class = Nothing

Ninette
Cette réponse vous a-t-elle aidé ?  
Tuning Max 316 Messages postés mercredi 15 juin 2005Date d'inscription 31 août 2006 Dernière intervention - 22 août 2005 à 14:49
+3
Utile
Tout d'abord, je tiens à préciser que concernant les calculs (et surtout les complexes) Access est à mon avis mieux qu'excel. Pour la présentation est la mise en forme, je reconnais que par contre Excel est plus adapté et accessible pour les utilisateurs.
Ceci étant, pour ton problème il existe un outil fournis avec Excel (Barre de menu/Données/Données externes) qui permet d'effectuer des liaisons entre des bases de données et ton tableur
Voilà j'espère que cela pourra t'aider
Cette réponse vous a-t-elle aidé ?  
daveneo 9 Messages postés mercredi 10 août 2005Date d'inscription 3 novembre 2005 Dernière intervention - 23 août 2005 à 13:42
0
Utile
Merci à tous les deux, celà m'a bien servi.
Je vais revenir j'ai encore d'autres questions à venir.
daveneo 9 Messages postés mercredi 10 août 2005Date d'inscription 3 novembre 2005 Dernière intervention - 23 août 2005 à 14:31
0
Utile
j'ai déjà essayé le fonctionnement avec les données externes par excel.
Mais celà reste une importation.
Je veux pouvoir avoir un lien entre les deux logiciels sans faire d'importation; a moins que l'on puisse faire une importation via VB.


Par contre ce que j'ai réussit à faire c'est de lier une table excel par access. Par ce procéder je peux insérer des données dans excel par access. Mais pour ce faire je dois créer un fichier excel et ensuite l'incorporer à access.
J'espère que je suis compréhensible dans mes argumentaires


A cet instant voici où j'en suis:


J'ai déjà créé une bonne partie de mon interface access pour insérer de nouveaux employés. Les données sont enregistrés dans une table de la base access. Hors je veux utiliser certaines parties de ces données pour les insérer dans un fichier excel qui est lier à access.


en fait je cherche en ce moment le moyen pour transférer des données d'une table vers une autre.
Tuning Max 316 Messages postés mercredi 15 juin 2005Date d'inscription 31 août 2006 Dernière intervention - 23 août 2005 à 15:44
0
Utile
tu fait une requête SQL sur Access ou en code vba selon tes préférences

en code cela peut donner un truc du grenre : (une des nombreuses requêtes d'une de ma dernière application)

**********************************start***************************************
StrChaineSQL = " INSERT INTO tblResumeImport ( Enregistrements, CreerPar, DateCreation, NomTable ) " & _
" SELECT tblTempImport.BATIMENT, '" & Environ("username") & "' AS Expr1, '" & Now() & "' AS Expr2, '" & chName & "' AS Expr3 " & _
" FROM tblTempImport LEFT JOIN tblBatiments ON tblTempImport.BATIMENT = tblBatiments.Sigle " & _
" WHERE (((tblTempImport.BATIMENT) Is Not Null) AND ((tblBatiments.Batiment) Is Null)); "

CurrentDb.Execute StrChaineSQL
*************************************end**************************************

A bientôt
daveneo 9 Messages postés mercredi 10 août 2005Date d'inscription 3 novembre 2005 Dernière intervention - 23 août 2005 à 18:25
0
Utile
Mais ton CurrentDb.Execute StrChaineSQL tu peux aussi le mettre dans ue requête SQL?
Tuning Max 316 Messages postés mercredi 15 juin 2005Date d'inscription 31 août 2006 Dernière intervention - 24 août 2005 à 09:31
0
Utile
Bien sûr que non voyons! Je t'ai mis un exemple qui te montre comment tu peux écrire une requête SQL directement en VB.
Le "StrChaineSQL" est une variable de type string qui contient la requête SQL

Le "CurrentDb.Execute StrChaineSQL" est le code Visual Basic qui exécute la requête puisqu'il s'agit là dans l'exemple que je t'ai donné d'une requête action qui ajoute des données dans une table de ma base

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.