Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

A propos de l'option FilterName de l'OpenReport

4 réponses
Avatar
Alain
Bonjour à tous.

J'ai un état complexe.
Je dois, via une macro, construire la requete SQL de cet état avant de
l'ouvrir.
Je construit donc ma requete puis je fais un "DoCmd.OpenReport "état",
acViewPreview, chaîne_sql
Je laisse donc vide les propriétés Source et Filtre de mon état.
Pourtant, il semble qu'Access ait besoin d'une requete valable enregistrée
au niveau de l'état pour exécuter mon OpenReport.
Il me semble qu'Access n'évalue ma requete SQL qu'après avoir évaluer la
requete SQL stockée dans l'état (dans les propriétés Source et Filtre).

Est-ce que je me trompe ?

Ce comportement d'Access me pose problème.
Y-a-t-il moyen de l'éviter ?

Merci d'avance,
Alain.

4 réponses

Avatar
ze Titi
Bonjour Alain

Je suppose que la requête que tu crées a toujours le même nom. Non ? Si
c'est le cas, je ne vois pas pourquoi tu laisses les propriétés de
l'état vides.
Dans le cas contraire, ouvres d'abord ton état en mode création,
assigne lui la requête en source, ferme en sauvegardant et ouvre le en
mode aperçu.

Dis-nous !

Dans ton message du lundi
Bonjour à tous.

J'ai un état complexe.
Je dois, via une macro, construire la requete SQL de cet état avant de
l'ouvrir.
Je construit donc ma requete puis je fais un "DoCmd.OpenReport "état",
acViewPreview, chaîne_sql
Je laisse donc vide les propriétés Source et Filtre de mon état.
Pourtant, il semble qu'Access ait besoin d'une requete valable enregistrée
au niveau de l'état pour exécuter mon OpenReport.
Il me semble qu'Access n'évalue ma requete SQL qu'après avoir évaluer la
requete SQL stockée dans l'état (dans les propriétés Source et Filtre).

Est-ce que je me trompe ?

Ce comportement d'Access me pose problème.
Y-a-t-il moyen de l'éviter ?

Merci d'avance,
Alain.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info

Avatar
Alain
Bonjour,

On ne s'est pas compris.
Je ne crée pas une requete (désolé pour les accents circonflexes mais je
pense que j'ai un virus bénin sur mon PC; de temps en temps, je n'ai plus
certains accents) au sens Access, c'est à dire qui apparait dans l'onglet
"Requetes" de ma base de données.
Je crée une requete de manière dynamique qui change de manière importante à
chaque exécution de mon programme.
Ce que je fais, c'est:
1. créer de toutes pièces, avec des concaténations de string et sur base des
choix de l'utilisateur, la requete SQL; cette dernière retournant toujours
les meme champs (champs qui ont leurs correspondances dans mon état); je ne
stocke donc pas cette requete SQL de type string sous forme de requete de
type Access.
2. j'obtiens: chaine_sql = "SELECT x,y,z FROM T WHERE ..."
3. j'ouvre mon état avec la commande OpenReport "état", acViewPreview,
chaîne_sql pour visualiser les résultats de ma requete dynamique dans mon
état comme le souhaite l'utilisateur.

En fait, c'est uniquement mon WHERE qui change à chaque fois mais je trouve
plus lisible, pour la maintenance du programme, de construire l'ensemble de
la requete dans mon programme VBA et de l'associer à mon état lors de
l'OpenReport.

Voila, j'espere etre plus clair. C'est un peu difficile d'expliquer tout
cela par écrit.
Merci pour ton aide.

Alain.







"ze Titi" a écrit dans le message de
news:
Bonjour Alain

Je suppose que la requête que tu crées a toujours le même nom. Non ? Si
c'est le cas, je ne vois pas pourquoi tu laisses les propriétés de
l'état vides.
Dans le cas contraire, ouvres d'abord ton état en mode création,
assigne lui la requête en source, ferme en sauvegardant et ouvre le en
mode aperçu.

Dis-nous !

Dans ton message du lundi
Bonjour à tous.

J'ai un état complexe.
Je dois, via une macro, construire la requete SQL de cet état avant de
l'ouvrir.
Je construit donc ma requete puis je fais un "DoCmd.OpenReport "état",
acViewPreview, chaîne_sql
Je laisse donc vide les propriétés Source et Filtre de mon état.
Pourtant, il semble qu'Access ait besoin d'une requete valable
enregistrée


au niveau de l'état pour exécuter mon OpenReport.
Il me semble qu'Access n'évalue ma requete SQL qu'après avoir évaluer la
requete SQL stockée dans l'état (dans les propriétés Source et Filtre).

Est-ce que je me trompe ?

Ce comportement d'Access me pose problème.
Y-a-t-il moyen de l'éviter ?

Merci d'avance,
Alain.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info





Avatar
ze Titi
Tu cherches la complication. Si tu crées la chaîne SQL à chaque fois,
je ne comprends pas bien l'intérêt que tu as à ne pas créer la même
requête. Il te suffit de supprimer l'ancienne à chaque fois. Beaucoup
plus simple pour la gestion de ton état. La méthode OpenReport ne
permet pas de spécifier le recordSource. La façon dont tu utilises
cette méthode te permet juste de passer un filtre en paramètre, pas la
source (ce qui, selon moi, n'est d'ailleurs pas possible)

Mais comme tu précises que les champs sont toujours les mêmes, tu n'as
qu'à créer la requête et baser ton état dessus. De cette façon, tu es
tranquille, à son ouverture, ton état sait sur quoi se baser.

Voilou !


Dans ton message <# du mardi
Bonjour,

On ne s'est pas compris.
Je ne crée pas une requete (désolé pour les accents circonflexes mais je
pense que j'ai un virus bénin sur mon PC; de temps en temps, je n'ai plus
certains accents) au sens Access, c'est à dire qui apparait dans l'onglet
"Requetes" de ma base de données.
Je crée une requete de manière dynamique qui change de manière importante à
chaque exécution de mon programme.
Ce que je fais, c'est:
1. créer de toutes pièces, avec des concaténations de string et sur base des
choix de l'utilisateur, la requete SQL; cette dernière retournant toujours
les meme champs (champs qui ont leurs correspondances dans mon état); je ne
stocke donc pas cette requete SQL de type string sous forme de requete de
type Access.
2. j'obtiens: chaine_sql = "SELECT x,y,z FROM T WHERE ..."
3. j'ouvre mon état avec la commande OpenReport "état", acViewPreview,
chaîne_sql pour visualiser les résultats de ma requete dynamique dans mon
état comme le souhaite l'utilisateur.

En fait, c'est uniquement mon WHERE qui change à chaque fois mais je trouve
plus lisible, pour la maintenance du programme, de construire l'ensemble de
la requete dans mon programme VBA et de l'associer à mon état lors de
l'OpenReport.

Voila, j'espere etre plus clair. C'est un peu difficile d'expliquer tout
cela par écrit.
Merci pour ton aide.

Alain.







"ze Titi" a écrit dans le message de
news:
Bonjour Alain

Je suppose que la requête que tu crées a toujours le même nom. Non ? Si
c'est le cas, je ne vois pas pourquoi tu laisses les propriétés de
l'état vides.
Dans le cas contraire, ouvres d'abord ton état en mode création,
assigne lui la requête en source, ferme en sauvegardant et ouvre le en
mode aperçu.

Dis-nous !

Dans ton message du lundi
Bonjour à tous.

J'ai un état complexe.
Je dois, via une macro, construire la requete SQL de cet état avant de
l'ouvrir.
Je construit donc ma requete puis je fais un "DoCmd.OpenReport "état",
acViewPreview, chaîne_sql
Je laisse donc vide les propriétés Source et Filtre de mon état.
Pourtant, il semble qu'Access ait besoin d'une requete valable enregistrée
au niveau de l'état pour exécuter mon OpenReport.
Il me semble qu'Access n'évalue ma requete SQL qu'après avoir évaluer la
requete SQL stockée dans l'état (dans les propriétés Source et Filtre).

Est-ce que je me trompe ?

Ce comportement d'Access me pose problème.
Y-a-t-il moyen de l'éviter ?

Merci d'avance,
Alain.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



Avatar
Alain
Voila, maintenant, tout marche.
En fait, j'ai confondu les propriétés "Source", "Filter" et "Where".
Maintenant, c'est plus clair :)

Alain.





"ze Titi" a écrit dans le message de
news:
Tu cherches la complication. Si tu crées la chaîne SQL à chaque fois,
je ne comprends pas bien l'intérêt que tu as à ne pas créer la même
requête. Il te suffit de supprimer l'ancienne à chaque fois. Beaucoup
plus simple pour la gestion de ton état. La méthode OpenReport ne
permet pas de spécifier le recordSource. La façon dont tu utilises
cette méthode te permet juste de passer un filtre en paramètre, pas la
source (ce qui, selon moi, n'est d'ailleurs pas possible)

Mais comme tu précises que les champs sont toujours les mêmes, tu n'as
qu'à créer la requête et baser ton état dessus. De cette façon, tu es
tranquille, à son ouverture, ton état sait sur quoi se baser.

Voilou !


Dans ton message <# du mardi
Bonjour,

On ne s'est pas compris.
Je ne crée pas une requete (désolé pour les accents circonflexes mais je
pense que j'ai un virus bénin sur mon PC; de temps en temps, je n'ai
plus


certains accents) au sens Access, c'est à dire qui apparait dans
l'onglet


"Requetes" de ma base de données.
Je crée une requete de manière dynamique qui change de manière
importante à


chaque exécution de mon programme.
Ce que je fais, c'est:
1. créer de toutes pièces, avec des concaténations de string et sur base
des


choix de l'utilisateur, la requete SQL; cette dernière retournant
toujours


les meme champs (champs qui ont leurs correspondances dans mon état); je
ne


stocke donc pas cette requete SQL de type string sous forme de requete
de


type Access.
2. j'obtiens: chaine_sql = "SELECT x,y,z FROM T WHERE ..."
3. j'ouvre mon état avec la commande OpenReport "état", acViewPreview,
chaîne_sql pour visualiser les résultats de ma requete dynamique dans
mon


état comme le souhaite l'utilisateur.

En fait, c'est uniquement mon WHERE qui change à chaque fois mais je
trouve


plus lisible, pour la maintenance du programme, de construire l'ensemble
de


la requete dans mon programme VBA et de l'associer à mon état lors de
l'OpenReport.

Voila, j'espere etre plus clair. C'est un peu difficile d'expliquer tout
cela par écrit.
Merci pour ton aide.

Alain.







"ze Titi" a écrit dans le message de
news:
Bonjour Alain

Je suppose que la requête que tu crées a toujours le même nom. Non ? Si
c'est le cas, je ne vois pas pourquoi tu laisses les propriétés de
l'état vides.
Dans le cas contraire, ouvres d'abord ton état en mode création,
assigne lui la requête en source, ferme en sauvegardant et ouvre le en
mode aperçu.

Dis-nous !

Dans ton message du lundi
Bonjour à tous.

J'ai un état complexe.
Je dois, via une macro, construire la requete SQL de cet état avant de
l'ouvrir.
Je construit donc ma requete puis je fais un "DoCmd.OpenReport "état",
acViewPreview, chaîne_sql
Je laisse donc vide les propriétés Source et Filtre de mon état.
Pourtant, il semble qu'Access ait besoin d'une requete valable
enregistrée




au niveau de l'état pour exécuter mon OpenReport.
Il me semble qu'Access n'évalue ma requete SQL qu'après avoir évaluer
la




requete SQL stockée dans l'état (dans les propriétés Source et
Filtre).





Est-ce que je me trompe ?

Ce comportement d'Access me pose problème.
Y-a-t-il moyen de l'éviter ?

Merci d'avance,
Alain.


--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info



--
Cordialement,
Ze Titi

Tout pour réussir avec Access :
http://www.mpfa.info