OVH Cloud OVH Cloud

TransferSpreadSheet XL => une requete filtrée ?

4 réponses
Avatar
YannX
Bonsouir,

La commande suivante (en VBA) me permet de créer un fichier Excel

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5, sTableRequet$,
sFileName$, True

en précisant sFileName$ (sens evident!) et sTableRequet$
etant précisé que celle-ci ne permet que d'indiquer une table ou une
requete 'simple'
c'est-à-dire à que j'ai compris, sans filtre ni selection ! Bien
restrictif !
(a signaler d'ailleurs que l'aide Access 2000 comporterait
( une erreur dans l'ordre des derniers paramètres

Ma question : comment faire pour exporter juste un mois de la base de donnée
?
Est-il possible d'utiliser une requete paramétrée (mais comment faire) ?

Sinon, la seule solution que j'imagine :
une requete , avec filtre de sélection, mise en requete action,
dans une table temporaire, elle-meme alors source
de la requete d'export SpreadSheet ?

A moins que l'un d'entre vous n'ait sous la main
un bout de code qui propose une meilleure solution ?
(ou l'URL d'un article de FAQ que je n'ai pas vu ! )

Mes voeux vous accompagnent....
Et mes remerciements a vos reponses expertes......

Y@+

4 réponses

Avatar
Raymond [mvp]
RE.

exemple:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "requête1",
"classeur1.xls", True
requête1 SELECT table1.* FROM table1
WHERE (((table1.Pays)=[Formulaires]![Formulaire4]![pays]));

il n'y a aucun problème pour exporter la requête1, access ne demande rien et
va chercher son paramètre dans le formulaire indiqué.
ceci bien sûr dans les versions 2000 & +, pour 97 je ne sais pas, ne pouvant
pas vérifier.
Tu remplaces Pays par le mois et ça devrait aller.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:

Bonsouir,

La commande suivante (en VBA) me permet de créer un fichier Excel

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5,
sTableRequet$,
sFileName$, True

en précisant sFileName$ (sens evident!) et sTableRequet$
etant précisé que celle-ci ne permet que d'indiquer une table ou une
requete 'simple'
c'est-à-dire à que j'ai compris, sans filtre ni selection ! Bien
restrictif !
(a signaler d'ailleurs que l'aide Access 2000 comporterait
( une erreur dans l'ordre des derniers paramètres

Ma question : comment faire pour exporter juste un mois de la base de
donnée
?
Est-il possible d'utiliser une requete paramétrée (mais comment faire) ?

Sinon, la seule solution que j'imagine :
une requete , avec filtre de sélection, mise en requete action,
dans une table temporaire, elle-meme alors source
de la requete d'export SpreadSheet ?

A moins que l'un d'entre vous n'ait sous la main
un bout de code qui propose une meilleure solution ?
(ou l'URL d'un article de FAQ que je n'ai pas vu ! )

Mes voeux vous accompagnent....
Et mes remerciements a vos reponses expertes......

Y@+




Avatar
YannX
Bnjr,

Merci de ta précision : si je comprends bien, en Access 2000,
je peux balancer comme chaine requete un texte SQL !
La lecture de l'aide ne m'y avait pas incité....

Sinon, j'avais dans l'idée de faire un export par création
en Jet 4.0 vers un OLEDB=Xls (si j'exprime bien...)

Merci ; j'essaye de suit : cela serait trop beau !
@+


"Raymond [mvp]" a écrit dans le message de
news:
RE.

exemple:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "requête1",
"classeur1.xls", True
requête1 > SELECT table1.* FROM table1
WHERE (((table1.Pays)=[Formulaires]![Formulaire4]![pays]));

il n'y a aucun problème pour exporter la requête1, access ne demande rien
et

va chercher son paramètre dans le formulaire indiqué.
ceci bien sûr dans les versions 2000 & +, pour 97 je ne sais pas, ne
pouvant

pas vérifier.
Tu remplaces Pays par le mois et ça devrait aller.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:

Bonsouir,

La commande suivante (en VBA) me permet de créer un fichier Excel

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5,
sTableRequet$,
sFileName$, True

en précisant sFileName$ (sens evident!) et sTableRequet$
etant précisé que celle-ci ne permet que d'indiquer une table ou une
requete 'simple'
c'est-à-dire à que j'ai compris, sans filtre ni selection ! Bien
restrictif !
(a signaler d'ailleurs que l'aide Access 2000 comporterait
( une erreur dans l'ordre des derniers paramètres

Ma question : comment faire pour exporter juste un mois de la base de
donnée
?
Est-il possible d'utiliser une requete paramétrée (mais comment faire) ?

Sinon, la seule solution que j'imagine :
une requete , avec filtre de sélection, mise en requete action,
dans une table temporaire, elle-meme alors source
de la requete d'export SpreadSheet ?

A moins que l'un d'entre vous n'ait sous la main
un bout de code qui propose une meilleure solution ?
(ou l'URL d'un article de FAQ que je n'ai pas vu ! )

Mes voeux vous accompagnent....
Et mes remerciements a vos reponses expertes......

Y@+








Avatar
YannX
Dérangé par un autre point, donc pas encore testé
par contre, j'ai trouvé ceci
http://www.mvps.org/accessfr/modules/mdl0035.htm
Mais n'étant pas du tout a l'aise avec DAO/ADO je me demande si
Set Rs = CurrentDb.OpenRecordset("Customers", dbOpenSnapshot)
autorise aussi un SQL$
Je vais tester ces solutions !
Bonne apres-midi !

"Raymond [mvp]" a écrit dans le message de
news:
RE.

exemple:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "requête1",
"classeur1.xls", True
requête1 > SELECT table1.* FROM table1
WHERE (((table1.Pays)=[Formulaires]![Formulaire4]![pays]));

il n'y a aucun problème pour exporter la requête1, access ne demande rien
et

va chercher son paramètre dans le formulaire indiqué.
ceci bien sûr dans les versions 2000 & +, pour 97 je ne sais pas, ne
pouvant

pas vérifier.
Tu remplaces Pays par le mois et ça devrait aller.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:

Bonsouir,

La commande suivante (en VBA) me permet de créer un fichier Excel

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel5,
sTableRequet$,
sFileName$, True

en précisant sFileName$ (sens evident!) et sTableRequet$
etant précisé que celle-ci ne permet que d'indiquer une table ou une
requete 'simple'
c'est-à-dire à que j'ai compris, sans filtre ni selection ! Bien
restrictif !
(a signaler d'ailleurs que l'aide Access 2000 comporterait
( une erreur dans l'ordre des derniers paramètres

Ma question : comment faire pour exporter juste un mois de la base de
donnée
?
Est-il possible d'utiliser une requete paramétrée (mais comment faire) ?

Sinon, la seule solution que j'imagine :
une requete , avec filtre de sélection, mise en requete action,
dans une table temporaire, elle-meme alors source
de la requete d'export SpreadSheet ?

A moins que l'un d'entre vous n'ait sous la main
un bout de code qui propose une meilleure solution ?
(ou l'URL d'un article de FAQ que je n'ai pas vu ! )

Mes voeux vous accompagnent....
Et mes remerciements a vos reponses expertes......

Y@+








Avatar
Raymond [mvp]
attention, tu ne peux pas balancer une chaîne sql dans le
TransferSpreadsheet , tu dois créer une requête et ensuite exporter la
requête.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"YannX" a écrit dans le message de news:

Bnjr,

Merci de ta précision : si je comprends bien, en Access 2000,
je peux balancer comme chaine requete un texte SQL !
La lecture de l'aide ne m'y avait pas incité....

Sinon, j'avais dans l'idée de faire un export par création
en Jet 4.0 vers un OLEDB=Xls (si j'exprime bien...)

Merci ; j'essaye de suit : cela serait trop beau !
@+