Mais en fait, exporter vers Excel, qu'il s'agisse d'une table ou d'une
requête
n'est pas le problème.
Je pense qu'il faudrait passer par du code pour écrire un programme qui
génèrerait automatiquement un fichier excel par lot (la rupture s'effectuant
sur le champ numéro de lot de ma table client).
J'ai déjà vu écrit un tel programme par le passé : il s'agissait d'une table
de souscripteurs dont on générait un fichier souscripteurs par pays (rupture
sur le code pays), avec un nom explicite en sortie pour chaque fichier du
genre "FRAsous.xls, ITAsous.xls, ..." .
Hélàs, je suis bien incapable de retrouver ce type de programme. Et j'avoue
que cela me rendrait aujourd'hui bien service, au lieu de devoir éclater
moi-même l'excel des clients.
Cordialement à tous.
Pierre
"Dan" <service.informatique@ville-riorges.fr> a écrit dans le message de
news:418f2749$0$18878$8fcfb975@news.wanadoo.fr...
> "RaphK34" <nospampizza.mpl@tiscali.fr> a écrit dans le message de news:
> O15jj7RxEHA.2676@TK2MSFTNGP12.phx.gbl...
> > Bsoir,
> >
> > Je pense, que je créerai une requête création de table, qui me créerait
> une table pour chaque lot, puis j'utiliserai la méthode:
> >
> > DoCmd.TransferSpreadsheet
> >
> > Il ya peut être plus simple, mais à cette heure tardive ...
> >
> > --
> > --------------------------------------------
> > Merci de répondre sur le NG
> > Toutes remarques bienvenues !
> >
> > Pour un contact direct, utiliser:
> > nospampizza.mpl@tiscali.fr en enlevant nospam.
> > --------------------------------------------
> >
> > "Pierre" <pmbidal@club-internet.fr> a écrit dans le message de news:
> 418ea983$0$15753$7a628cd7@news.club-internet.fr...
> > | Bonsoir,
> > |
> > | Dans une base Access, j'ai une table contenant une liste de clients.
> Pour
> > | cette "table client", chaque client est rattaché à un numéro de lot.
> > |
> > | Je souhaiterais exporter cette table des clients vers excel, mais en
la
> > | scindant en autant de fichiers qu'il y a de lots différents dans ma
> table.
> > |
> > | Comment automatiser cet export pour que les fichiers des lots clients
> soient
> > | automatiquement générés vers excel ?
> > |
> > | Merci de vos conseils ou solutions.
> > |
> > | Pierre
> > |
> > |
> >
>
>
> On doit pouvoir exporter une requête... ce qui évite l'étape de création
de
> table dans la solution de Pierre...
>
> A+ Dan
>
>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
Voilà ce que je ferais...
Tu créer un recordset correspondant à tes lots :
dim rst as dao.recordset set rst = currentdb.openrecordset ("select * from tableLOT")
Ensuite tu boucles sur tous les enregistrements de ton recordset.
Dans la boucles, tu créer un second recordset correspondant à tous les clients du lot en question :
set rst2 = currentdb.openrecordset ("select * from client where lot = '" & rst.fields("Lot") & "'") Du coup tu mets à jour tes fichiers en utilisant l'automation Excel
Exemple plus ou moins complet :
Function CreateLot()
Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim strRst As String Dim strRst2 As String
strRst = "Select * From TableLot;" Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset) With rst If Not .BOF Then .MoveFirst Do Until .EOF '** {là tu creerpar automation ton fichier lot} strRst2 = "Select * From TableClient " _ & "Where Lot = '" & .Fields("Lot") & "';" Set rst2 = CurrentDb.OpenRecordset(strRst2, dbOpenDynaset) With rst2 If Not .BOF Then .MoveFirst Do Until .EOF '** {là tu mets à jour par automation ton fichier} .MoveNext Loop End If End With rst.Close: Set rst2 = Nothing .MoveNext Loop End If End With rst.Close: Set rst = Nothing End Function
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Pierre" a écrit dans le message news: 41906719$0$15755$
Bonsoir et merci pour vos réponses,
Mais en fait, exporter vers Excel, qu'il s'agisse d'une table ou d'une requête n'est pas le problème.
Je pense qu'il faudrait passer par du code pour écrire un programme qui génèrerait automatiquement un fichier excel par lot (la rupture s'effectuant
sur le champ numéro de lot de ma table client).
J'ai déjà vu écrit un tel programme par le passé : il s'agissait d'une table
de souscripteurs dont on générait un fichier souscripteurs par pays (rupture
sur le code pays), avec un nom explicite en sortie pour chaque fichier du genre "FRAsous.xls, ITAsous.xls, ..." .
Hélàs, je suis bien incapable de retrouver ce type de programme. Et j'avoue
que cela me rendrait aujourd'hui bien service, au lieu de devoir éclater moi-même l'excel des clients.
Cordialement à tous.
Pierre
Bonjour
Voilà ce que je ferais...
Tu créer un recordset correspondant à tes lots :
dim rst as dao.recordset
set rst = currentdb.openrecordset ("select * from tableLOT")
Ensuite tu boucles sur tous les enregistrements de ton recordset.
Dans la boucles, tu créer un second recordset correspondant à tous les
clients
du lot en question :
set rst2 = currentdb.openrecordset ("select * from client where lot = '" &
rst.fields("Lot") & "'")
Du coup tu mets à jour tes fichiers en utilisant l'automation Excel
Exemple plus ou moins complet :
Function CreateLot()
Dim rst As DAO.Recordset
Dim rst2 As DAO.Recordset
Dim strRst As String
Dim strRst2 As String
strRst = "Select * From TableLot;"
Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset)
With rst
If Not .BOF Then
.MoveFirst
Do Until .EOF
'** {là tu creerpar automation ton fichier lot}
strRst2 = "Select * From TableClient " _
& "Where Lot = '" & .Fields("Lot") & "';"
Set rst2 = CurrentDb.OpenRecordset(strRst2, dbOpenDynaset)
With rst2
If Not .BOF Then
.MoveFirst
Do Until .EOF
'** {là tu mets à jour par automation ton
fichier}
.MoveNext
Loop
End If
End With
rst.Close: Set rst2 = Nothing
.MoveNext
Loop
End If
End With
rst.Close: Set rst = Nothing
End Function
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Pierre" <pmbidal@club-internet.fr> a écrit dans le message news:
41906719$0$15755$7a628cd7@news.club-internet.fr...
Bonsoir et merci pour vos réponses,
Mais en fait, exporter vers Excel, qu'il s'agisse d'une table ou d'une
requête
n'est pas le problème.
Je pense qu'il faudrait passer par du code pour écrire un programme qui
génèrerait automatiquement un fichier excel par lot (la rupture
s'effectuant
sur le champ numéro de lot de ma table client).
J'ai déjà vu écrit un tel programme par le passé : il s'agissait d'une
table
de souscripteurs dont on générait un fichier souscripteurs par pays
(rupture
sur le code pays), avec un nom explicite en sortie pour chaque fichier du
genre "FRAsous.xls, ITAsous.xls, ..." .
Hélàs, je suis bien incapable de retrouver ce type de programme. Et
j'avoue
que cela me rendrait aujourd'hui bien service, au lieu de devoir éclater
moi-même l'excel des clients.
dim rst as dao.recordset set rst = currentdb.openrecordset ("select * from tableLOT")
Ensuite tu boucles sur tous les enregistrements de ton recordset.
Dans la boucles, tu créer un second recordset correspondant à tous les clients du lot en question :
set rst2 = currentdb.openrecordset ("select * from client where lot = '" & rst.fields("Lot") & "'") Du coup tu mets à jour tes fichiers en utilisant l'automation Excel
Exemple plus ou moins complet :
Function CreateLot()
Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim strRst As String Dim strRst2 As String
strRst = "Select * From TableLot;" Set rst = CurrentDb.OpenRecordset(strRst, dbOpenDynaset) With rst If Not .BOF Then .MoveFirst Do Until .EOF '** {là tu creerpar automation ton fichier lot} strRst2 = "Select * From TableClient " _ & "Where Lot = '" & .Fields("Lot") & "';" Set rst2 = CurrentDb.OpenRecordset(strRst2, dbOpenDynaset) With rst2 If Not .BOF Then .MoveFirst Do Until .EOF '** {là tu mets à jour par automation ton fichier} .MoveNext Loop End If End With rst.Close: Set rst2 = Nothing .MoveNext Loop End If End With rst.Close: Set rst = Nothing End Function
@+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://users.skynet.be/mpfa/ ------------------------------------ "Pierre" a écrit dans le message news: 41906719$0$15755$
Bonsoir et merci pour vos réponses,
Mais en fait, exporter vers Excel, qu'il s'agisse d'une table ou d'une requête n'est pas le problème.
Je pense qu'il faudrait passer par du code pour écrire un programme qui génèrerait automatiquement un fichier excel par lot (la rupture s'effectuant
sur le champ numéro de lot de ma table client).
J'ai déjà vu écrit un tel programme par le passé : il s'agissait d'une table
de souscripteurs dont on générait un fichier souscripteurs par pays (rupture
sur le code pays), avec un nom explicite en sortie pour chaque fichier du genre "FRAsous.xls, ITAsous.xls, ..." .
Hélàs, je suis bien incapable de retrouver ce type de programme. Et j'avoue
que cela me rendrait aujourd'hui bien service, au lieu de devoir éclater moi-même l'excel des clients.