ADO: créer une liaison entre access et excel.

Résolu
daveneo
Messages postés
9
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
3 novembre 2005
- 22 août 2005 à 13:03
Tuning Max
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
- 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.

7 réponses

Ninette08
Messages postés
56
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
14 septembre 2005

22 août 2005 à 14:41
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
3
Tuning Max
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
22 août 2005 à 14:49
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
3
daveneo
Messages postés
9
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
3 novembre 2005

23 août 2005 à 13:42
Merci à tous les deux, celà m'a bien servi.
Je vais revenir j'ai encore d'autres questions à venir.
0
daveneo
Messages postés
9
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
3 novembre 2005

23 août 2005 à 14:31
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tuning Max
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
23 août 2005 à 15:44
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
0
daveneo
Messages postés
9
Date d'inscription
mercredi 10 août 2005
Statut
Membre
Dernière intervention
3 novembre 2005

23 août 2005 à 18:25
Mais ton CurrentDb.Execute StrChaineSQL tu peux aussi le mettre dans ue requête SQL?
0
Tuning Max
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
24 août 2005 à 09:31
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
0