EXPORTATION ACCESS VERS EXCEL

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 27 mars 2013 à 17:34
cs_philnext Messages postés 9 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 29 novembre 2010 - 1 avril 2013 à 20:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/55047-exportation-access-vers-excel

cs_philnext Messages postés 9 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 29 novembre 2010
1 avril 2013 à 20:58
cs_philnext Messages postés 9 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 29 novembre 2010
1 avril 2013 à 12:47
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
1 avril 2013 à 10:54
D'accord aussi avec Mauricio et Cantador (y compris que la généralisation à n'importe quelle table de format quelconque).
De plus, le fichier CSV est compatible avec d'autres tableurs et d'autres appli.
Sinon, il y a maintenant le format XLSX qui est un simple ZIP avec un fichier xml contenant le tableau.
Maintenant, le but ici étant d'exporter ver excel, on suppose que l'utilisateur a excel...
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
28 mars 2013 à 23:04
merci Mauricio,
OLE, c'est bien sans plus..

il y a la dépendance notamment en cas de changement de version
et aussi et la vitesse d'exécution qui n'est pas terrible.
Alors qu'll existe beaucoup d'autres solutions bien meilleures..
le .cvs en fait partie puisqu'il est reconnu aussitôt par EXCEL et
s'ouvre directement en mode tableur.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
28 mars 2013 à 10:25
Très bonnes remarques de Cantador!

Je déplore l' utilisation d' Excel (ExcelApp := CreateOleObject('Excel.Application')) qui rend notre application dépendente alors qu' il est possible de créer un fichier *.csv.

a+
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
28 mars 2013 à 09:54
Bonjour,

Avec ADOQuery2 il est possible de transferer toute la table sélectionnée
dans excel (ou l'invers), avec une sipmle commande SQL.

La table destination doit être inexistante.

Salutations

//--------- extrait de code

Tab_source := edit13.Text ;// table ACCESS existante
Tab_destination:= edit6.Text; // table EXCEL nouvelle

sCopy := 'SELECT * INTO ["Excel 8.0;Database=' + Source_EXCEL.Text + '"].['+Tab_destination+'] FROM '+ Tab_source;

// LA TABLE EXCEL EXISTE ?
i := combobox1.Items.IndexOf(Tab_destination ) ;
if i > 0 then
BEGIN
showmessage(' la table EXCEL : ' +Tab_destination+ #10' existe ');
exit;
END;

// COPIE ACCESS VERS EXCEL POSSIBLE
caption := sCopy;
TRY
BD_.ADOQuery2.SQL.Text:= sCopy; // liée avec ACCESS
BD_.ADOQuery2.ExecSQL;
EXCEPT
// message ..;
END;
//----------
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
27 mars 2013 à 23:32
if ADOQuery.RecordCount = 0 then

à remplacer par :
if (ADOQuery.BOF) and (ADOQuery.EOF)then

si les deux pointeurs sont vrais alors la table est vide, beaucoup plus rapide que recordcount qui parcourt toute la table..
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
27 mars 2013 à 17:34
question posée de manière récurrente sur le forum..
Ce code répond je pense à tes besoins,
mais il ne traite pas la question de manière générale..

Il aurait été intéressant de l'aborder quel que soit le nombre de champs existants dans la table et aussi quels que soient leurs structures.

On peut aussi prendre une hypothèse de travail plus large encore en choisissant d'exporter un dataset et là quelque soit la base !

Il faudrait aussi lui ajouter une option afin de choisir un format de sortie et prévoir un traitement d'erreurs toujours possibles.
Rejoignez-nous