Transfert de données entre Access et Excel

JISEL

XLDnaute Nouveau
Bonjour,

Dans le cadre d'un projet, en dernière année d'école d'ingénieurs, nous sommes confrontés (avec mon équipe) à un difficulté de transferts entre une base de données sous Access 2003 et un fichier Excel 2003.

Sur Access, nous avons une base de données assez conséquente.

Le but final est de créer un "jeu" pour étudiants, dont la seule interface est Excel.

Notre question est donc la suivante : "Comment lire des données dans Access et les écrire dans Excel (ou l'inverse pour la mise à jour de la base de données), sans ouvrir le fichier Access?". Ce dernier point est essentiel, car il ne faut pas que les étudiants puissent avoir accès aux paramètres du jeu...

Merci de l'aide que vous pourrez nous apporter.

L'équipe JISEL.
 

JISEL

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Pour nous, la difficulté principale est de faire la manipulation sans ouvrir le fichier Access.

Si ça ne pose pas de problème que les deux fichiers (Excel et Access) soient ouverts, voici la procédure pour récupérer dans Access les données d'Excel :

Dans Access, aller dans Macro/Nouveau.
Dans la colonne "Action", choisir "TransférerFeuilleCalcul".
Remplir les informations demandées en bas, avec comme type de transfert "importation".

L'équipe JISEL
 

Paritec

XLDnaute Barbatruc
Re : Transfert de données entre Access et Excel

Bonjour L'équipe Jisel, Bonjour le forum,
Moi j'utilise cela tous les jours pour lire dans access par contre pour mettre a jour dans access en partant d'excel là il faudra chercher. Je n'ai jamais cherché a rendre possible le mise a jour inverse puisque mon but était justement de ne pa risquer de faire des mauvaises manips.
pour lire dans access sans avoir à ouvrir le fichier, il faut créer une requête d'importation.
bonne journée
Papou
 

JISEL

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Merci pour cette précision. Nous allons essayer.

Auriez-vous s'il vous plaît un fichier Excel et un fichier Access à nous envoyer, où ce type de lien serait présent?

Merci beaucoup,

L'équipe JISEL
 

michel_m

XLDnaute Accro
Re : Transfert de données entre Access et Excel

Bonsoir,

Ce pb a été moulte fois posé sur ce site

Voici une proc qui extrait une table entière dans Excel. Il faut au préalable cocher la référence "microsoft activeX data Object X.x library dans outils-référence de VBE

Code:
Sub importer_access()

Dim source As ADODB.Connection
Dim t_list As ADODB.Recordset
Dim chemin As String, texte_SQL As String

chemin = ActiveWorkbook.Path
' ouvre la base de données Access (microsoft jet)
Set source = New ADODB.Connection
source.Provider = "Microsoft.Jet.OLEDB.4.0;"
source.Open chemin & "\demoado.mdb"

Set t_list = New ADODB.Recordset
'requete SQL dans t_demo de tous les champs
texte_SQL = "SELECT * FROM T_demo"
Set t_list = source.Execute(texte_SQL)

'reporte dans home.xls
Application.ScreenUpdating = False
Range("A2").CopyFromRecordset t_list
  
'ferme la requête  et demoado.mdb
t_list.Close
source.Close

End Sub

Tu peux filtrer avec des WHERE dans SQL, faire des jointures etc toujours avec SQL

Bonne soirée
 

JISEL

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Bonjour,

Merci beaucoup, c'est exactement ce que nous cherchions à faire. Ce code fonctionne parfaitement.

A présent, est-il possible de faire l'opération inverse : à partir d'Excel, nous souhaiterions écrire dans la base de données, toujours sans ouvrir le fichier.

Il faudra probablement aussi utiliser des connexions ODBC, mais il me semble que l'écriture ne peut se faire par requête sql...

Avez-vous une solution s'il vous plaît?

L'équipe JISEL
 

michel_m

XLDnaute Accro
Re : Transfert de données entre Access et Excel

Bonjour,

Suis au boulot. Je joins un truc de base fait il y a quelque temps et depuis les solutions se sont améliorées!...
adodemozip
le classeur de W est home.xls
il s'agit d'étudier les lectures sur un classeur excel fermé avec liaisons et restitutions d'une base access; écriture dans base access à partir d'un fichier fermé et écriture dans fichier fermé
adoword:
réalise un publipostage ciblé à partir du fichier fermé en utilisant ADO

Bon courage quand m^me

Cordialement
 

Pièces jointes

  • adodemo.zip
    46.8 KB · Affichages: 194
  • adoword.zip
    11.1 KB · Affichages: 145
  • adodemo.zip
    46.8 KB · Affichages: 204
  • adodemo.zip
    46.8 KB · Affichages: 200

jpducom

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Bonjour,

je voudrais ajouter une question au forum.

Comment peut-on faire pour importer toutes les données d'un champs mémo provenant d'une base Access.

En effet, lorsque je fais un import avec un ADODB.Recordset (requete SQL SELECT Commentaire [-c'est un champ mémo] FROM comm_table) le recordset ne me renvoit que les 255 premiers caractères du champ mémo de ma base Access.

J'ai essayer avec un Rs.value ou un [A1].CopyFromRecordset Rs pour voir la différence mais les deux ne me renvoient que 255 caractères.

Peut-etre le recordset est-il limité à 255 caractères?
Je précise encore mon champ est bien un champ mémo et non texte.

bien cordialement.

Jean-Pascal.
 

jpducom

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Rebonjour,

je reviens pour vous informer d'une manière de procéder afin de contourner ce problème.

Je ne sais pour quelle raison mais la propriété Value d'un field d'un Recordset tronque les données à 255 caractères.

Il existe une manière de contourner le problème à l'aide de Getchunk

Vous pouvez ainsi obtenir l'ensemble du champ mémo à l'aide de Rs(0).GetChunk(100000)
(Rs = correspond à un Recordset; 100000 = correspond à la taille de ce que vous voulez avoir, prenez ici un chiffre assez grand)

bien cordialement.
 

Blackunicorn

XLDnaute Nouveau
Re : Transfert de données entre Access et Excel

Bonjour,

J'ai à peu près le même problème, à savoir récupérer des données sur access avec excel, sans avoir à ouvrir le fichier access (logiciel non installé sur certains postes).
Malheureusement, je suis complétement nulle en programmation et je ne comprends pas un mot des lignes de codes données plus haut. En plus, je ne pense pas pouvoir faire de requêtes SQL avec excel, vu que Query n'est pas installé de base sur office 97.

Si l'un d'entre vous pouvait me donner un petit coup de pouce, ça m'éviterai de m'arracher les cheveux. Merci d'avance !
 

Discussions similaires

Réponses
3
Affichages
781
M
Réponses
9
Affichages
513
Maikales
M

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami