Pd de transfert de résultats filtrés vers Excel

Le
Francis
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères
qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncreequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous
les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

--
Francis
fhgc@wanadoudou.fr
RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente,
plus sera lent l'employé du guichet.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CErnst
Le #19601981
je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères qui
me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous les
enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

--
Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente, plus
sera lent l'employé du guichet.




Francis
Le #19602431
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur une
sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef &
"*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou mon
état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux
être plus précis, ça m'aidera car, comme je le disais plus haut, je
suis nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères qui
me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, , strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous les
enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente, plus
sera lent l'employé du guichet.







--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.
CErnst
Le #19602421
ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur une
sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef & "*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou mon
état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux être
plus précis, ça m'aidera car, comme je le disais plus haut, je suis
nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères
qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous
les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente, plus
sera lent l'employé du guichet.







--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.




Francis
Le #19603271
CErnst vient de nous annoncer :

Bonjour CErnst,

Je crois avoir suivi scrupuleusement tes propositions, mais ça ne
change rien à la situation. Voici ce que j'ai actuellement comme code:

Dim oRst As DAO.QueryDef
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.Close
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"

Si tu as d'autres propositions à tester, je prends,
@+


ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite d'éléments
de texte mis bout à bout, et qui résultent de tris sur une sélection d'une
quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef & "*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la sélection
qui répond à mes critères de choix dans mon formulaire ou mon état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux être
plus précis, ça m'aidera car, comme je le disais plus haut, je suis
nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères
qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous
les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente, plus
sera lent l'employé du guichet.







-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







--
Francis

LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.
CErnst
Le #19603691
Si le contenu du filtre est la même chose que strfiltre dans :

DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

ca ne peut pas marcher.

Car dans le filtre de l'ouverture du formulaire, il n'y a que le filtre et
non la requête qui elle est dans la source du formulaire.

C'est pour cela que je vous demandais le contenu du filtre. Vous ne m'avez
donné que quelques éléments.

Il faut combiner la requête du formulaire avec le filtre

Si strfiltre ne commence pas par un SELECT cà ne marchera pas



"Francis"
CErnst vient de nous annoncer :

Bonjour CErnst,

Je crois avoir suivi scrupuleusement tes propositions, mais ça ne change
rien à la situation. Voici ce que j'ai actuellement comme code:

Dim oRst As DAO.QueryDef
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.Close
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"

Si tu as d'autres propositions à tester, je prends,
@+


ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur une
sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef & "*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou mon
état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux être
plus précis, ça m'aidera car, comme je le disais plus haut, je suis
nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères
qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations",
sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous
les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente,
plus sera lent l'employé du guichet.







-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







--
Francis

LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.




Francis
Le #19604151
Voici une expression de strFiltre avec un seul critère retenu:

strFiltre = ([code_compte] LIKE '*4*')
Il est clair que SELECT n'y figure pas.

Si à partir de ça tu peux m'en dire un peu plus, ça m'arrangera...
Merci


Si le contenu du filtre est la même chose que strfiltre dans :

DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

ca ne peut pas marcher.

Car dans le filtre de l'ouverture du formulaire, il n'y a que le filtre et
non la requête qui elle est dans la source du formulaire.

C'est pour cela que je vous demandais le contenu du filtre. Vous ne m'avez
donné que quelques éléments.

Il faut combiner la requête du formulaire avec le filtre

Si strfiltre ne commence pas par un SELECT cà ne marchera pas



"Francis"
CErnst vient de nous annoncer :

Bonjour CErnst,

Je crois avoir suivi scrupuleusement tes propositions, mais ça ne change
rien à la situation. Voici ce que j'ai actuellement comme code:

Dim oRst As DAO.QueryDef
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.Close
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"

Si tu as d'autres propositions à tester, je prends,
@+


ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur une
sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef & "*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou mon
état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux être
plus précis, ça m'aidera car, comme je le disais plus haut, je suis
nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de critères
qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte tous
les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente,
plus sera lent l'employé du guichet.







-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







-- Francis

LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.







--
Francis

PRINCIPE DE RUBY
La probabilité de rencontrer une personne de ta connaissance augmente
quand tu es avec quelqu'un avec qui tu ne veux pas être vu.
Eric
Le #19606261
Bonjour,

Si j'ai bien compris le formulaire de choix est un formulaire
indépendant (pas de source)

Il faut que tu construises la chaine sql sur les tables concernées (avec
les champs voulus). Ta chaine strFiltre n'est que le critère de
sélection mis sur un champ correspondant à la clause Where.

Tu devrais faire un truc du genre :
Dim oRst As DAO.QueryDef, strSQL as string
srtSQL="Select champ1, champ2, ... From LaTable Where" & strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", strSQL)
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"
CurrentDB.Querydefs.Delete "rqt journal des opérations"


Francis a écrit :
Voici une expression de strFiltre avec un seul critère retenu:

strFiltre = ([code_compte] LIKE '*4*')
Il est clair que SELECT n'y figure pas.

Si à partir de ça tu peux m'en dire un peu plus, ça m'arrangera...
Merci


Si le contenu du filtre est la même chose que strfiltre dans :

DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

ca ne peut pas marcher.

Car dans le filtre de l'ouverture du formulaire, il n'y a que le
filtre et non la requête qui elle est dans la source du formulaire.

C'est pour cela que je vous demandais le contenu du filtre. Vous ne
m'avez donné que quelques éléments.

Il faut combiner la requête du formulaire avec le filtre

Si strfiltre ne commence pas par un SELECT cà ne marchera pas



"Francis"
CErnst vient de nous annoncer :

Bonjour CErnst,

Je crois avoir suivi scrupuleusement tes propositions, mais ça ne
change rien à la situation. Voici ce que j'ai actuellement comme code:

Dim oRst As DAO.QueryDef
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.Close
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"

Si tu as d'autres propositions à tester, je prends,
@+


ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau
de compétence en matière de VBA, mais j'essaierai de t'apporter le
plus de précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur
une sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef &
"*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou
mon état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations",
sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux
être plus précis, ça m'aidera car, comme je le disais plus haut, je
suis nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de
critères qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations",
sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations",
"E:Mes DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte
tous les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file
d'attente, plus sera lent l'employé du guichet.







-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







-- Francis

LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.










--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Francis
Le #19606951
Bonsoir Eric,

Super, ça marche au poil :-)
Merci beaucoup à toi, ainsi qu'à CErnst.
Francis

Bonjour,

Si j'ai bien compris le formulaire de choix est un formulaire indépendant
(pas de source)

Il faut que tu construises la chaine sql sur les tables concernées (avec les
champs voulus). Ta chaine strFiltre n'est que le critère de sélection mis sur
un champ correspondant à la clause Where.

Tu devrais faire un truc du genre :
Dim oRst As DAO.QueryDef, strSQL as string
srtSQL="Select champ1, champ2, ... From LaTable Where" & strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", strSQL)
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"
CurrentDB.Querydefs.Delete "rqt journal des opérations"


Francis a écrit :
Voici une expression de strFiltre avec un seul critère retenu:

strFiltre = ([code_compte] LIKE '*4*')
Il est clair que SELECT n'y figure pas.

Si à partir de ça tu peux m'en dire un peu plus, ça m'arrangera...
Merci


Si le contenu du filtre est la même chose que strfiltre dans :

DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

ca ne peut pas marcher.

Car dans le filtre de l'ouverture du formulaire, il n'y a que le filtre et
non la requête qui elle est dans la source du formulaire.

C'est pour cela que je vous demandais le contenu du filtre. Vous ne m'avez
donné que quelques éléments.

Il faut combiner la requête du formulaire avec le filtre

Si strfiltre ne commence pas par un SELECT cà ne marchera pas



"Francis"
CErnst vient de nous annoncer :

Bonjour CErnst,

Je crois avoir suivi scrupuleusement tes propositions, mais ça ne change
rien à la situation. Voici ce que j'ai actuellement comme code:

Dim oRst As DAO.QueryDef
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations", sSql)
oRst.Close
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsAncrerequete.xls"

Si tu as d'autres propositions à tester, je prends,
@+


ben comme j'ai dit :
supprimer la ligne initule
et rajouter orst.close à sous la ligne : Set Orst......

"Francis"
Bonsoir CErnst,

Merci d'avoir consacré un peu de temps à mon problème.
Je ne suis pas auteur de ce code, qui dépasse largement mon niveau de
compétence en matière de VBA, mais j'essaierai de t'apporter le plus de
précisions possibles.

sSQL est égal à strFiltre, lui même élaboré par toutes une suite
d'éléments de texte mis bout à bout, et qui résultent de tris sur une
sélection d'une quinzaine de critères dont 2 sont donnés ci-après.
strFiltre = strFiltre & "([code_compte] LIKE '*" & varMotclef & "*')"
strFiltre = strFiltre & "([sous_catégorie] LIKE '*" & varMotclef &
"*')"
La valeur strFiltre obtenue in fine est correcte car j'ai bien la
sélection qui répond à mes critères de choix dans mon formulaire ou mon
état.

je voudrais savoir ce qu'il y a dans sSql...

A première vue, il faut sauvegarder la requête filtrée....
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations",
sSql)
orst.close

oRst.SQL = sSql fait double emploi et est inutile



Je crois que tu as raison, mais comment faire? En effet, si tu peux
être plus précis, ça m'aidera car, comme je le disais plus haut, je
suis nettement incompétent pour écrire moi-même le code nécessaire.

Merci et @+,



"Francis"
Bonjour,
J'ai un formulaire de sélection basé sur un certain nombre de
critères qui me génère la variable string: strFiltre.
En appliquant ce filtre aux instructions ci-après:

DoCmd.OpenForm "fiche des écritures journal avec LD", acNormal, ,
strFiltre
ou
DoCmd.OpenReport "état selon critéres", acPreview, , strFiltre

je peux me rendre compte que mon filtre fonctionne correctement.

Par contre, pour exporter vers Excel, j'ai le code suivant:

Dim oRst As DAO.QueryDef
Dim sSql As String
sSql = strFiltre
Set oRst = CurrentDb.CreateQueryDef("rqt journal des opérations",
sSql)
oRst.SQL = sSql
DoCmd.TransferSpreadsheet 1, 8, "rqt journal des opérations", "E:Mes
DocumentsMes DocumentsAncrerequete.xls"

et là, le tableau requete.xls que je récupère dans excel comporte
tous les enregistrements non filtrés de ma table.

Merci à qui peut me dire ce qui cloche dans ce code.

@+

Francis

-- Francis

RÈGLE DE FLUGG
Plus est urgent le motif pour lequel tu es dans la file d'attente,
plus sera lent l'employé du guichet.







-- Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.







-- Francis

LOI DE TATA JACQUELINE
C'est celui qui ronfle qui s'endort toujours le premier.












--
Francis

LOI DE MOSES
C'est quand on ne regarde pas que le but est marqué.
Publicité
Poster une réponse
Anonyme