OVH Cloud OVH Cloud

Tri sur état

5 réponses
Avatar
Toine
Bonjour

J'ai un petit soucis: je veux ouvrir un état, changer l'ordre de tri puis
imprimer, le tout sur une seule action.

j'utilise donc ce code:

DoCmd.Echo False
DoCmd.OpenReport "nom_formulaire", acViewDesign
Reports![nom_formulaire].OrderBy = Me.tri.Value 'ici, j'applique
le même tri que dans le formulaire actuellement ouvert
DoCmd.Close acReport, "nom_formulaire", acSaveYes
DoCmd.Echo True
DoCmd.OpenReport "nom_formulaire", , , critere

Lorsque la base est en .mdb, pas de problème, ça fonctionne parfaitement.
Par contre, lorsque la base est convertie en .mde, j'obtient le message
"Cette commande n'est pas disponible pour une base de données MDE (Erreur n°
7802)

Donc ma question est la suivante: comment faire ?

5 réponses

Avatar
Damran
Bonjour

J'ai un petit soucis: je veux ouvrir un état, changer l'ordre de tri puis
imprimer, le tout sur une seule action.

j'utilise donc ce code:

DoCmd.Echo False
DoCmd.OpenReport "nom_formulaire", acViewDesign
Reports![nom_formulaire].OrderBy = Me.tri.Value 'ici, j'applique
le même tri que dans le formulaire actuellement ouvert
DoCmd.Close acReport, "nom_formulaire", acSaveYes
DoCmd.Echo True
DoCmd.OpenReport "nom_formulaire", , , critere

Lorsque la base est en .mdb, pas de problème, ça fonctionne parfaitement.
Par contre, lorsque la base est convertie en .mde, j'obtient le message
"Cette commande n'est pas disponible pour une base de données MDE (Erreur n°
7802)

Donc ma question est la suivante: comment faire ?
Il faut passer par la commande "trier et regrouper", l'icone à coté de

la barre d'outils quand tu édite un etat.

--
Damran
mail: http://www.cerbermail.com/?rS2q80nELM

Avatar
Toine
Merci pour ta réponse, mais celle-ci n'est pas applicable dans ce cas.
C'est une application "professionnelle", vendue à des particuliers. Toutes
les barres d'outils sont désactivées et doivent le rester.
Lorsque l'utilisateur demande l'impression de son état, celui-ci doit être
trié sur le même critère que dans le formulaire qui lui permet de faire sa
sélection d'enregistrement.
Donc je suis obligé de passer par du code (ou autre) pour appliquer le tri
sans aucune intervention supplémentaire de l'utilisateur.




"Damran" a écrit dans le message de news:
42f49c3f$0$1784$
Bonjour

J'ai un petit soucis: je veux ouvrir un état, changer l'ordre de tri puis
imprimer, le tout sur une seule action.

j'utilise donc ce code:

DoCmd.Echo False
DoCmd.OpenReport "nom_formulaire", acViewDesign
Reports![nom_formulaire].OrderBy = Me.tri.Value 'ici,
j'applique le même tri que dans le formulaire actuellement ouvert
DoCmd.Close acReport, "nom_formulaire", acSaveYes
DoCmd.Echo True
DoCmd.OpenReport "nom_formulaire", , , critere

Lorsque la base est en .mdb, pas de problème, ça fonctionne parfaitement.
Par contre, lorsque la base est convertie en .mde, j'obtient le message
"Cette commande n'est pas disponible pour une base de données MDE (Erreur
n° 7802)

Donc ma question est la suivante: comment faire ?
Il faut passer par la commande "trier et regrouper", l'icone à coté de la

barre d'outils quand tu édite un etat.

--
Damran
mail: http://www.cerbermail.com/?rS2q80nELM



Avatar
3stone
Salut,

"Toine"
| J'ai un petit soucis: je veux ouvrir un état, changer l'ordre de tri puis
| imprimer, le tout sur une seule action.
|
| j'utilise donc ce code:
|
| DoCmd.Echo False
| DoCmd.OpenReport "nom_formulaire", acViewDesign
| Reports![nom_formulaire].OrderBy = Me.tri.Value 'ici, j'applique
| le même tri que dans le formulaire actuellement ouvert
| DoCmd.Close acReport, "nom_formulaire", acSaveYes
| DoCmd.Echo True
| DoCmd.OpenReport "nom_formulaire", , , critere
|
| Lorsque la base est en .mdb, pas de problème, ça fonctionne parfaitement.
| Par contre, lorsque la base est convertie en .mde, j'obtient le message
| "Cette commande n'est pas disponible pour une base de données MDE (Erreur n°
| 7802)


Si l'état est toujour lancé par le même formulaire...
tu fixe le tri à partir dans l'état (sur ouverture par ex.) :

Me.OrderBy = Forms!MonFormulaire.OrderBy
Me.OrderByOn = True



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Damran
Merci pour ta réponse, mais celle-ci n'est pas applicable dans ce cas.
C'est une application "professionnelle", vendue à des particuliers. Toutes
les barres d'outils sont désactivées et doivent le rester.
Lorsque l'utilisateur demande l'impression de son état, celui-ci doit être
trié sur le même critère que dans le formulaire qui lui permet de faire sa
sélection d'enregistrement.
Donc je suis obligé de passer par du code (ou autre) pour appliquer le tri
sans aucune intervention supplémentaire de l'utilisateur.
Je m'en suis douté après l'envoi de ma réponse. ;-)


Le problème est que tu enregistre l'état, chose interdite dans un mde.
Tu peut peut-être faire un tri sur un nom de champs fixe, dont tu change
la valeur dans ta requete, via un alias retournant le nom du champ fixe
indiqué dans l'état.
Cela t'évitera d'avoir à changer le nom du champs à trier.


--
Damran
mail: http://www.cerbermail.com/?rS2q80nELM

Avatar
Toine
Bonne idée. Je vais tester ça de suite.

Je te remercie grandement.


"3stone" a écrit dans le message de news:
%
Salut,

"Toine"
| J'ai un petit soucis: je veux ouvrir un état, changer l'ordre de tri
puis
| imprimer, le tout sur une seule action.
|
| j'utilise donc ce code:
|
| DoCmd.Echo False
| DoCmd.OpenReport "nom_formulaire", acViewDesign
| Reports![nom_formulaire].OrderBy = Me.tri.Value 'ici,
j'applique
| le même tri que dans le formulaire actuellement ouvert
| DoCmd.Close acReport, "nom_formulaire", acSaveYes
| DoCmd.Echo True
| DoCmd.OpenReport "nom_formulaire", , , critere
|
| Lorsque la base est en .mdb, pas de problème, ça fonctionne
parfaitement.
| Par contre, lorsque la base est convertie en .mde, j'obtient le message
| "Cette commande n'est pas disponible pour une base de données MDE
(Erreur n°
| 7802)


Si l'état est toujour lancé par le même formulaire...
tu fixe le tri à partir dans l'état (sur ouverture par ex.) :

Me.OrderBy = Forms!MonFormulaire.OrderBy
Me.OrderByOn = True



--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw