exporter un état access dans excel

9 réponses
Avatar
liantsoa
Bonjour,

J'ai un programme access qui ne peut pas exporter un état dans excel. L'icone excel est désactivée mais celle de word est activée. Je suis obligé d'exporter mes données vers word avant de les copier vers excel. Pourriez-vous me donner une réponse pour activer cette icône ?
Merci d'avance

9 réponses

Avatar
Thierry
Bonjour,
Il n'est pas prévu normalement d'exporter un état Access vers Excel, c'est
la raison pour laquelle
l'icone est désactivée.

Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Access Data
to Excel
donnée sur l'excellent site ( en anglais ):
http://www.helenfeddema.com/access.htm
bon courage
Thierry

"liantsoa" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un programme access qui ne peut pas exporter un état dans excel.
L'icone
excel est désactivée mais celle de word est activée. Je suis obligé
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous me
donner
une réponse pour activer cette icône ?
Merci d'avance
Avatar
zzzz
On 30 déc 2011, 14:02, "Thierry" wrote:
Bonjour,
Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Access Data
to Excel
donnée sur l'excellent site ( en anglais ):http://www.helenfeddema.com/ access.htm
bon courage
Thierry

"liantsoa"  a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un programme access qui ne peut pas exporter un état dans excel.
L'icone
excel est désactivée mais celle de word est activée. Je suis oblig é
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous me
donner
une réponse pour activer cette icône ?
Merci d'avance



essaye de créer un bouton de commande à côté de l'état et dans
Evenement/Sur clic tu pointe sur une macro
Action = "TransférerFeuilleCalcul"; type de transfert = Exportation ;
nom table = nom de la requete.
Du moins ça marche pour moi avec un formulaire, pour un état je ne
sais pas, mais je pense que ce doit être pareil.

Quant à la la procédure n° 200 : Exporting Access Data to Excel, la
longueur du code dans word = 24 pages !!!
ce serait peut être plus rapide en exportant la requête (sur laquelle
est basé l'état) vers Excel tout simplement
Avatar
Thierry
"zzzz" a écrit dans le message de groupe de discussion :


On 30 déc 2011, 14:02, "Thierry" wrote:
Bonjour,
Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Access Data
to Excel
donnée sur l'excellent site ( en
anglais ):http://www.helenfeddema.com/access.htm
bon courage
Thierry

"liantsoa" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un programme access qui ne peut pas exporter un état dans excel.
L'icone
excel est désactivée mais celle de word est activée. Je suis obligé
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous me
donner
une réponse pour activer cette icône ?
Merci d'avance



essaye de créer un bouton de commande à côté de l'état et dans
Evenement/Sur clic tu pointe sur une macro
Action = "TransférerFeuilleCalcul"; type de transfert = Exportation ;
nom table = nom de la requete.
Du moins ça marche pour moi avec un formulaire, pour un état je ne
sais pas, mais je pense que ce doit être pareil.

Quant à la la procédure n° 200 : Exporting Access Data to Excel, la
longueur du code dans word = 24 pages !!!
ce serait peut être plus rapide en exportant la requête (sur laquelle
est basé l'état) vers Excel tout simplement

La longueur de la procédure, on s'en fout, il suffit de la copier/coller
dans un module...
Quant à exporter la requête d'un état, cela n'aura pas grand chose à voir
avec
l'état qui lui-même n'a rien à voir avec un formulaire .
Les regroupements ne seront pas pris en compte alors que la procédure citée
en tient compte
(mais il faut l'avoir testée pour comprendre...).
Avatar
Gloops
Thierry a écrit, le 30/12/2011 14:02 :
Bonjour,
Il n'est pas prévu normalement d'exporter un état Access vers Excel ,
c'est la raison pour laquelle
l'icone est désactivée.

Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Acce ss
Data to Excel
donnée sur l'excellent site ( en anglais ):
http://www.helenfeddema.com/access.htm
bon courage
Thierry

"liantsoa" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un programme access qui ne peut pas exporter un état dans excel.
L'icone
excel est désactivée mais celle de word est activée. Je suis obli gé
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous m e
donner
une réponse pour activer cette icône ?
Merci d'avance



Il y a bien un bouton de prévu, dans Access 2003, au niveau de la
prévisualisation, pour réaliser l'export, soit au format Word soit au
format Excel (le bouton est une liste déroulante). Cela étant, mon
dernier client m'a fait réécrire l'export, parce que les totaux
apparaissaient décalés vers la droite.

Ou bien y a-t-il plus rapide pour rectifier ça ?

Il faut reconnaître que c'était un peu "pêchu" comme exercice, pour tant
j'ai déjà fait un certain nombre d'exports Automation, mais depuis un
formulaire on ne peut pas réaliser de pas à pas, si on se trompe c'es t
plus long de détecter l'erreur. Il faut placer des numéros de ligne,
pour savoir où c'est.
Avatar
zzzz
On 2 jan, 20:16, Gloops wrote:
Thierry a écrit, le 30/12/2011 14:02 :



> Bonjour,
> Il n'est pas prévu normalement d'exporter un état Access vers Excel ,
> c'est la raison pour laquelle
> l'icone est désactivée.

> Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Acce ss
> Data to Excel
> donnée sur l'excellent site ( en anglais ):
>http://www.helenfeddema.com/access.htm
> bon courage
> Thierry

> "liantsoa" a écrit dans le message de groupe de discussion :
>

> Bonjour,

> J'ai un programme access qui ne peut pas exporter un état dans excel.
> L'icone
> excel est désactivée mais celle de word est activée. Je suis obli gé
> d'exporter
> mes données vers word avant de les copier vers excel. Pourriez-vous m e
> donner
> une réponse pour activer cette icône ?
> Merci d'avance

Il y a bien un bouton de prévu, dans Access 2003, au niveau de la
prévisualisation, pour réaliser l'export, soit au format Word soit au
format Excel (le bouton est une liste déroulante). Cela étant, mon
dernier client m'a fait réécrire l'export, parce que les totaux
apparaissaient décalés vers la droite.

Ou bien y a-t-il plus rapide pour rectifier ça ?

Il faut reconnaître que c'était un peu "pêchu" comme exercice, pour tant
j'ai déjà fait un certain nombre d'exports Automation, mais depuis un
formulaire on ne peut pas réaliser de pas à pas, si on se trompe c'es t
plus long de détecter l'erreur. Il faut placer des numéros de ligne,
pour savoir où c'est.



Résultat des courses : exporter un état Access vers Excel c'est la
croix et la bannière...
Correction : on ne peut pas créer un bouton pour exporter à partir
d'un état comme je le fais sur un formulaire.
Avatar
Gloops
zzzz a écrit, le 03/01/2012 10:08 :
On 2 jan, 20:16, Gloops wrote:
Thierry a écrit, le 30/12/2011 14:02 :



Bonjour,
Il n'est pas prévu normalement d'exporter un état Access vers Exc el,
c'est la raison pour laquelle
l'icone est désactivée.



Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Ac cess
Data to Excel
donnée sur l'excellent site ( en anglais ):
http://www.helenfeddema.com/access.htm
bon courage
Thierry



"liantsoa" a écrit dans le message de groupe de discussion :




Bonjour,



J'ai un programme access qui ne peut pas exporter un état dans exce l.
L'icone
excel est désactivée mais celle de word est activée. Je suis ob ligé
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous me
donner
une réponse pour activer cette icône ?
Merci d'avance



Il y a bien un bouton de prévu, dans Access 2003, au niveau de la
prévisualisation, pour réaliser l'export, soit au format Word soit au
format Excel (le bouton est une liste déroulante). Cela étant, mon
dernier client m'a fait réécrire l'export, parce que les totaux
apparaissaient décalés vers la droite.

Ou bien y a-t-il plus rapide pour rectifier ça ?

Il faut reconnaître que c'était un peu "pêchu" comme exercice, p ourtant
j'ai déjà fait un certain nombre d'exports Automation, mais depuis un
formulaire on ne peut pas réaliser de pas à pas, si on se trompe c 'est
plus long de détecter l'erreur. Il faut placer des numéros de lign e,
pour savoir où c'est.



Résultat des courses : exporter un état Access vers Excel c'est la
croix et la bannière...



Un exercice intéressant, en tout cas :)

Correction : on ne peut pas créer un bouton pour exporter à partir
d'un état comme je le fais sur un formulaire.



Non là il faut le créer sur une barre d'outils, affichée pendant la
prévisualisation.
C'est vrai qu'il faut prendre un petit peu de temps pour apprendre à le
faire.
Autrement il doit y avoir moyen plus rapidement par une combinaison de
touches. Il y a aussi le menu déroulant, dont on peut dire la même ch ose
que pour la barre d'outils peut-être.
Avatar
Gloops
Gloops a écrit, le 02/01/2012 20:16 :
depuis un formulaire on ne peut pas réaliser de pas à pas



Oups, je me suis trompé.
Depuis un formulaire si, c'est depuis un état en mode prévisualisatio n,
qu'on ne peut pas exécuter le code en pas à pas.
Quand on a besoin de situer une erreur il faut placer les étiquettes de
numéros de lignes. A éviter quand les délais sont vraiment trop ten dus.
Avatar
Gloops
zzzz a écrit, le 03/01/2012 10:08 :
On 2 jan, 20:16, Gloops wrote:
Thierry a écrit, le 30/12/2011 14:02 :



Bonjour,
Il n'est pas prévu normalement d'exporter un état Access vers Exc el,
c'est la raison pour laquelle
l'icone est désactivée.



Vous pouvez toutefois utiliser la procédure n° 200 : Exporting Ac cess
Data to Excel
donnée sur l'excellent site ( en anglais ):
http://www.helenfeddema.com/access.htm
bon courage
Thierry



"liantsoa" a écrit dans le message de groupe de discussion :




Bonjour,



J'ai un programme access qui ne peut pas exporter un état dans exce l.
L'icone
excel est désactivée mais celle de word est activée. Je suis ob ligé
d'exporter
mes données vers word avant de les copier vers excel. Pourriez-vous me
donner
une réponse pour activer cette icône ?
Merci d'avance



Il y a bien un bouton de prévu, dans Access 2003, au niveau de la
prévisualisation, pour réaliser l'export, soit au format Word soit au
format Excel (le bouton est une liste déroulante). Cela étant, mon
dernier client m'a fait réécrire l'export, parce que les totaux
apparaissaient décalés vers la droite.

Ou bien y a-t-il plus rapide pour rectifier ça ?

Il faut reconnaître que c'était un peu "pêchu" comme exercice, p ourtant
j'ai déjà fait un certain nombre d'exports Automation, mais depuis un
formulaire on ne peut pas réaliser de pas à pas, si on se trompe c 'est
plus long de détecter l'erreur. Il faut placer des numéros de lign e,
pour savoir où c'est.



Résultat des courses : exporter un état Access vers Excel c'est la
croix et la bannière...



En fait, pour la peine que j'ai fait ça récemment, autant que j'en di se
un peu plus. Je commence par dire comment je m'en suis sorti de l'export
depuis l'état Access, pour ensuite constater des inconvénients de la
méthode, et proposer une autre façon de s'y prendre, et en déduire un
mode opératoire à respecter de préférence pour monter quelque é tat que
ce soit sous Access.

1. Tout d'abord, l'export Excel depuis l'état Access

J'exploite les événements de formatage, il est donc important que
ceux-ci soient réalisés dans l'ordre. Par conséquent, la
prévisualisation n'est pas vraiment adaptée, car là c'est l'utilisa teur
qui choisit l'ordre d'affichage. Donc, si l'utilisateur affiche d'abord
la page 1, puis la 20, puis la 5, dans le fichier Excel on aura les
pages 1, 20 puis 5.

Il faut donc une impression normale, mais en même temps comme on préf ère
éviter de gâcher du papier, il faut une impression vers un fichier. I l
faudra donc choisir une imprimante vers un fichier, comme une imprimante
en mode PDF par exemple. Dans l'idéal on s'intéresse de près aux op tions
de ladite imprimante, pour éviter que l'utilisateur ait à donner un n om
de fichier à chaque fois ; mais sinon ce n'est pas bloquant, une fois
qu'on a bien expliqué les tenants et aboutissants à l'utilisateur.

Une fois l'export terminé, il faudra à nouveau se retrouver avec la m ême
imprimante par défaut qu'avant.

Il nous faut donc une routine qui permette d'avoir dans une table une
liste des imprimantes, la sélection de l'une d'elles pour l'état avec
export Excel, et après impression la restauration de l'imprimante par
défaut d'origine.

http://access.developpez.com/faq/?page=TAEtat#ChoixImpr

Il convient de prévenir l'utilisateur qu'en cas de plantage pendant
l'opération, il aura à sélectionner à nouveau son imprimante par défaut.
Une fois le code bien au point il n'y a pas de raison que ça arrive
souvent, mais l'utilisateur doit être informé quand même, au même titre
qu'un automobiliste doit savoir où est son cric.

L'application proposait dans un formulaire, avant l'impression, une
sélection du mode d'impression : prévisualisation, ou impression dire cte
(donc vers l'imprimante). J'ai ajouté une troisième option : impressi on
avec export Excel, qui imprime vers l'imprimante fichier en réalisant u n
export. Cette option doit être publique, de façon que pendant le
formatage de l'état, on puisse venir voir si on est en cours
d'impression avec export Excel, auquel cas on réalise le traitement. Le
test doit se réaliser dans un module de façon à être toujours
accessible. La fonction commence par tester si le formulaire est ouvert.
Sinon, on n'est pas en cours d'impression avec export Excel. Si le
formulaire est ouvert, on lit la valeur du groupe d'options : pour l'une
des trois valeurs possibles on est en impression avec export Excel, pour
les deux autres non.


Comme je le disais, il y faut une certaine aisance, je déconseillerais à
un débutant de s'attaquer à ça avant d'être bien à l'aise d'une part
avec les états, et le cas échéant les sous-états et/ou les
regroupements, d'autre part avec Automation (pour l'export vers Excel),
d'autre part aussi avec l'appel des API (pour la sélection
d'imprimante), encore que sur ce point le code soit fourni tout cuit, à
part l'interface d'initialisation par l'utilisateur (voir le lien que je
fournissais chez developpez.com, il existe aussi une fiche Microsoft sur
la question).



A noter que les têtes de groupes ne sont pas nécessairement formaté es
dans l'ordre auquel on s'attend, ce qui peut donner quelque chose de
surprenant à l'export, un travail supplémentaire peut donc être
nécessaire pour gérer l'ordre des lignes.


2. Export Excel via un module


Une autre option est aussi d'écrire l'export de façon indépendante dans
un module, c'est probablement plus facile à maîtriser, on n'a pas bes oin
de changer l'imprimante par défaut, on sait dans quel ordre sont
exécutées les opérations, on peut exécuter en pas à pas. ça a des côtés
frustrants si des calculs sophistiqués sont réalisés dans l'état, et
qu'il faut donc les refaire.

La solution la plus élégante sera peut-être de réaliser les calcu ls à
part dans un module dédié, et de les appeler d'une part depuis l'ét at,
d'autre part depuis le module d'export Excel. C'est encore plus éléga nt
d'y penser en amont, avant de confectionner l'état, plutôt que
d'externaliser des calculs qui sont déjà réalisés dans un état tout
prêt. Mais ça, ça dépend aussi du client, qui peut se fier à l' export
Excel proposé en standard par Access, et se rendre compte a posteriori
que les totaux sont décalés vers la droite.


3. "Design patterns"
(un peu ronflant, comme titre ? bon alors conseils de conception d'un é tat)

Bon, alors pour tirer parti de cette expérience, je proposerais bien de
systématiquement réaliser un état dans cette optique : réaliser l es
calculs à l'aide d'une fonction fournie dans un module, avec une syntax e
d'appel la plus claire possible. Comme ça, si on a à réaliser un ex port
ensuite, on peut appeler les mêmes calculs dans l'export.
ça peut aussi être une fonction qui donne un résultat dépendant d e la
colonne, qu'on reçoit dans un des arguments. En colonne 1, identifiant
du client. En colonne 2, nom du client. En colonne 3, chiffre d'affaires
avec ce client ...
ça paraît compliqué à exposer, mais ça permet de donner les val eurs à
sortir sur une ligne en parcourant le numéro de colonne dans une boucle .
Et ça, pour un export Excel, il faut reconnaître que c'est l'idéal.=
Avatar
Gloops
Gloops a écrit, le 03/01/2012 14:22 :
aussi avec l'appel des API (pour la sélection d'imprimante), encore q ue
sur ce point le code soit fourni tout cuit



Oui et non. Je ne parle pas des coupures de lignes à corriger, mais il
m'a aussi fallu corriger quelques déclarations de fonctions API, qui
étaient fournies en booléen et qu'il a fallu mettre en Integer, ou
inversement, et pareil avec certains arguments.
J'ai passé la matinée à faire tourner un code fourni tout cuit, don c
attention pour un débutant.