EFFECTUER DES IMPORTATIONS D'UNE BASE DE DONNÉE ACCESS VERS EXCEL EN VBA
cs_hdidan
Messages postés2Date d'inscriptiondimanche 30 janvier 2005StatutMembreDernière intervention26 juin 2005
-
26 juin 2005 à 13:13
turb0
Messages postés10Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention11 juin 2007
-
6 juin 2007 à 14:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Je pense que ça devrais suffire à résoudre votre problème.
turb0
Messages postés10Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention11 juin 2007 6 juin 2007 à 11:15
Bin j'ai le meme soucis et meme en chargeant les differentes librairies ca ne marche pas.
J'ai essaye avec la version 3.5 et 3.6 ainsi qu'avec Microsoft DAO 2.5/3.5 Compatibility Library.
Toujours le meme message d'erreur...
cs_chico200987
Messages postés92Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 septembre 2008 22 déc. 2006 à 19:15
Ben en faite c'est pour un autre problème mais c'est quand même de cette librairie dont j'ai besoin car c'est pour convertir un base access 2000 en 2003 et comme elle dépendait de cette librairieet c'est la seul qui permet la compatibilité :/ et je ne l'ai pas dans "OUTIL > references"
Squall____
Messages postés65Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention11 septembre 2012 19 déc. 2006 à 16:36
Tu le trouve dans le menu "OUTIL > Références..." de ton éditeur VBA dans Excel. Maintenant il y a eu de nouvelles version du DAO donc prend la plus avancée, se sera le mieux. (Acutellement sur ma machine je vois une version 3.6)
cs_chico200987
Messages postés92Date d'inscriptionsamedi 13 novembre 2004StatutMembreDernière intervention26 septembre 2008 19 déc. 2006 à 15:34
Bonjour, je voudrais savoir où trouver "Microsoft DAO 2.5/3.5 Compatibility Library" car je ne le trouve pas ! Merci :)
Squall____
Messages postés65Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention11 septembre 2012 12 janv. 2006 à 18:38
boudabbous_mohamed, as tu bien référencé dans ton projet la librairie "Microsoft DAO 2.5/3.5 Compatibility Library" ?
Si c'est pas ça, je ne vois pas d'où sa peut venir...
boudabbous_mohamed
Messages postés1Date d'inscriptionmardi 27 décembre 2005StatutMembreDernière intervention28 décembre 2005 28 déc. 2005 à 16:46
Merci pour le code publié.
J'ai essayé de tester ce code, je rouve l'erreur suivante au niveau de la ligne contenat cette instruction:
Set Db = DBEngine.OpenDatabase(FichierBaseDeDonneeMDB, False, False, "MS Access")
l'erreur signalée est la suivante:
"Un composant ActivX ne peut pas créer l'objet"
cs_Cath
Messages postés27Date d'inscriptionsamedi 13 avril 2002StatutMembreDernière intervention26 novembre 2005 26 nov. 2005 à 10:31
Un grand merci à Squall pour ce code très pédagogique. Je l'ai utilisé, en tant que formateur, pour présenter DAO. L'exercice a été fort apprécié.
Bravo
Horatio
Squall____
Messages postés65Date d'inscriptionmercredi 7 janvier 2004StatutMembreDernière intervention11 septembre 2012 1 août 2005 à 11:22
Andrieuremi, Je suis content que ma source te plaise mais malheureusement, je ne peux pas me pencher sur la gestion des mots de passe actuellement(manque de temps, tu comprends...).
Mais si tu veux la modifier et la compléter toi même, n'hésite pas. Je ne pense pas que l'ajout de la gestion des mot de passe doit être très difficile. Tu devrais surement trouver de l'aide sur ce site à ce sujet !
Tien moi au courrant si tu arrives à compléter le code !
andrieuremi
Messages postés14Date d'inscriptionmercredi 18 juin 2003StatutMembreDernière intervention21 juin 2007 28 juil. 2005 à 18:06
Je trouve ton code source parfait.
Cela fait des mois que je cherche une telle source.
Je voulais te demander si tu pouvais compléter cette source en gérant lors de l'ouverture de la base de données le mot de passe du fichier car ma base auquel se souhaiterais me connecter possède un mot de passe et le code source ne le gère pas. MERCI INFINIMENT!
pbrenas
Messages postés1Date d'inscriptionlundi 13 juin 2005StatutMembreDernière intervention28 juin 2005 28 juin 2005 à 23:19
aprés avoir testé plusieurs méthodes, pour récupérer la totalité des enregistrement sélectionnés si le résultat à moins de 65534 enregistrements,
la fonction query d'excel est plus rapide:
connec = "ODBC;DSN=piloteodbc;UID=;PWD=1234;DBQ=\\SERVEUR\Mesdocs\sage;DefaultDir=;CODEPAGE=1252;" pour la liaison avec sage ligne 100
piloteodbc est crée dans la liste des bases personnelles dans outils d'administration , pilotes odbc
sel contient la requête SQL
A1 est la position de la première cellule de destination
With ActiveSheet.QueryTables.Add(Connection:=Connec, Destination:=Range("A1"))
.CommandText = Sel
.Name = ta
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.Refresh BackgroundQuery:=False
End With
j'ai trouvé cette fonction en enregistrant une macro sur données, données externe, créer une requette.
Cela ne fonctionne pas pour écrire sur les base, les fonction ADO sont nécéssaire.
merci pour ce source trés bien commenté.
jmlucienvb
Messages postés129Date d'inscriptionmercredi 24 septembre 2003StatutMembreDernière intervention12 février 2009 27 juin 2005 à 18:15
DAO ne suffit pas pour que access soit reconnu
Il faut aussi que la bibliothèque d'office soit déclarée...
Au bureau j'ai des codes simples quoi fonctionnenet en permanence pour les échanges excel access dans les deux sens en version 97...
Un petit mail je vous les envoie...
(jean-marc.lucien@acoss.fr)
Avant jeudi après je pars en congés.
Sinon ado n'est pas top avec office 97 mais après avec 2000 ou xp c'est bien plus simple
JM
Cramfr
Messages postés160Date d'inscriptionmercredi 24 novembre 2004StatutMembreDernière intervention 8 juillet 2008 27 juin 2005 à 15:40
Vous avez pensez à ADO ???
cs_hdidan
Messages postés2Date d'inscriptiondimanche 30 janvier 2005StatutMembreDernière intervention26 juin 2005 26 juin 2005 à 13:13
Je trouve ton code source intéressant. Moi aussi, j'ai un problème disons similaire au tien. Je cherche à importer des données Access sur Excel (ton code me donne des idées) ainsi que des données Excel sur Access. Pour cette 2ème partie, si tu peux m'être d'une aide quelle conque.
J'ai trouvé sur le site des codes mais que j'arrive pas à faire tourner : il reconnait pas Dim "MonAccess As New Access.Application" même si j'ai ajouté le microsoft DAO.
6 juin 2007 à 14:23
Mais si tu trouves une autre solution hesites pas a faire signe, ton code avait l'air interessant ;)
6 juin 2007 à 13:33
Pour régler votre problème, il vaut mieux essayer de le réinstaller en le téléchargeant ici :
http://www.download.com/Microsoft-Jet-Database-Engine-3-5/3000-2114_4-4238277.html
Sinon, j'ai trouvé un article pour vérifier l'installation du pilote JET 3.5 chez Microsoft ici :
http://support.microsoft.com/kb/240377
Je pense que ça devrais suffire à résoudre votre problème.
6 juin 2007 à 11:15
J'ai essaye avec la version 3.5 et 3.6 ainsi qu'avec Microsoft DAO 2.5/3.5 Compatibility Library.
Toujours le meme message d'erreur...
22 déc. 2006 à 19:15
19 déc. 2006 à 16:36
19 déc. 2006 à 15:34
12 janv. 2006 à 18:38
Si c'est pas ça, je ne vois pas d'où sa peut venir...
28 déc. 2005 à 16:46
J'ai essayé de tester ce code, je rouve l'erreur suivante au niveau de la ligne contenat cette instruction:
Set Db = DBEngine.OpenDatabase(FichierBaseDeDonneeMDB, False, False, "MS Access")
l'erreur signalée est la suivante:
"Un composant ActivX ne peut pas créer l'objet"
26 nov. 2005 à 10:31
Bravo
Horatio
1 août 2005 à 11:22
Mais si tu veux la modifier et la compléter toi même, n'hésite pas. Je ne pense pas que l'ajout de la gestion des mot de passe doit être très difficile. Tu devrais surement trouver de l'aide sur ce site à ce sujet !
Tien moi au courrant si tu arrives à compléter le code !
28 juil. 2005 à 18:06
Cela fait des mois que je cherche une telle source.
Je voulais te demander si tu pouvais compléter cette source en gérant lors de l'ouverture de la base de données le mot de passe du fichier car ma base auquel se souhaiterais me connecter possède un mot de passe et le code source ne le gère pas. MERCI INFINIMENT!
28 juin 2005 à 23:19
la fonction query d'excel est plus rapide:
connec = "ODBC;DSN=piloteodbc;UID=;PWD=1234;DBQ=\\SERVEUR\Mesdocs\sage;DefaultDir=;CODEPAGE=1252;" pour la liaison avec sage ligne 100
piloteodbc est crée dans la liste des bases personnelles dans outils d'administration , pilotes odbc
sel contient la requête SQL
A1 est la position de la première cellule de destination
With ActiveSheet.QueryTables.Add(Connection:=Connec, Destination:=Range("A1"))
.CommandText = Sel
.Name = ta
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = False
.Refresh BackgroundQuery:=False
End With
j'ai trouvé cette fonction en enregistrant une macro sur données, données externe, créer une requette.
Cela ne fonctionne pas pour écrire sur les base, les fonction ADO sont nécéssaire.
merci pour ce source trés bien commenté.
27 juin 2005 à 18:15
Il faut aussi que la bibliothèque d'office soit déclarée...
Au bureau j'ai des codes simples quoi fonctionnenet en permanence pour les échanges excel access dans les deux sens en version 97...
Un petit mail je vous les envoie...
(jean-marc.lucien@acoss.fr)
Avant jeudi après je pars en congés.
Sinon ado n'est pas top avec office 97 mais après avec 2000 ou xp c'est bien plus simple
JM
27 juin 2005 à 15:40
26 juin 2005 à 13:13
J'ai trouvé sur le site des codes mais que j'arrive pas à faire tourner : il reconnait pas Dim "MonAccess As New Access.Application" même si j'ai ajouté le microsoft DAO.