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

affichage ou pas suivant qu'une requête est triée ou non

7 réponses
Avatar
Pascal
Bonjour =E0 tous et toutes,

J'ai essay=E9 de r=E9sumer en un titre mon probl=E8me, ce n'est pas
=E9vident (mais histoire de pouvoir le retrouver plus tard okazou).

J'ai 2 sous-formulaires dans un formulaire principal.

J'effectue un calcul* dans le 1er sous-formulaire, que je mets en
pied et r=E9cup=E8re, dans le formulaire principale
(par le biais de =3DFormulaire!NomSubForm1!NomDuChampEnPied
classique), dans un champ.

C'est une manip qui me permet d'appeler, dans le 2=E8me sous-
formulaire, le champ en question plut=F4t que de passer par une formule
=E0 rallonge pour passer de subform1 =E0 subform2.

Dans le 2=E8me formulaire, jusqu'ici, je r=E9cup=E9rais donc bien le
champ en question (par le biais de
=3DFormulaires.NomMainForm.champ classique encore).

Jusqu'=E0 aujourd'hui: la seule diff=E9rence est que j'ai effectu=E9 un
tri dans la requ=EAte source de donn=E9es du 1er sous-formulaire.

'champ' affiche toujours bien les valeurs,
'=3DFormulaires.NomMainForm.champ' est vide.

J'ai enlev=E9 le tri puis l'ai remis: j'ai bien affichage, dans le
2=E8me formulaire, ou pas suivant qu'il y a un tri ou pas.

Je suis un peu bluff=E9 l=E0; quelqu'un a d=E9j=E0 vu ce probl=E8me? Et l'a
r=E9solu?

Merci d'avance pour toute aide, direction.

Pascal

*: c'est un calcul de maximum

7 réponses

Avatar
Gloops
Pascal a écrit, le 09/02/2012 12:15 :
Bonjour à tous et toutes,

J'ai essayé de résumer en un titre mon problème, ce n'est pa s
évident (mais histoire de pouvoir le retrouver plus tard okazou).

J'ai 2 sous-formulaires dans un formulaire principal.

J'effectue un calcul* dans le 1er sous-formulaire, que je mets en
pied et récupère, dans le formulaire principale
(par le biais de =Formulaire!NomSubForm1!NomDuChampEnPied
classique), dans un champ.

C'est une manip qui me permet d'appeler, dans le 2ème sous-
formulaire, le champ en question plutôt que de passer par une formule
à rallonge pour passer de subform1 à subform2.

Dans le 2ème formulaire, jusqu'ici, je récupérais donc bien le
champ en question (par le biais de
=Formulaires.NomMainForm.champ classique encore).

Jusqu'à aujourd'hui: la seule différence est que j'ai effectué un
tri dans la requête source de données du 1er sous-formulaire.

'champ' affiche toujours bien les valeurs,
'=Formulaires.NomMainForm.champ' est vide.

J'ai enlevé le tri puis l'ai remis: j'ai bien affichage, dans le
2ème formulaire, ou pas suivant qu'il y a un tri ou pas.

Je suis un peu bluffé là; quelqu'un a déjà vu ce problème? Et l'a
résolu?

Merci d'avance pour toute aide, direction.

Pascal

*: c'est un calcul de maximum



Raconte voir ce que donne un Requery sur le contrôle concerné ?
C'est un champ du premier enregistrement, qu'il faut sortir, c'est bien ç a ?
Avatar
Pascal
On 10 fév, 16:10, Gloops wrote:
Pascal a écrit, le 09/02/2012 12:15 :









> Bonjour à tous et toutes,

>      J'ai essayé de résumer en un titre mon problème, ce n' est pas
> évident (mais histoire de pouvoir le retrouver plus tard okazou).

>      J'ai 2 sous-formulaires dans un formulaire principal.

>    J'effectue un calcul* dans le 1er sous-formulaire, que je mets e n
> pied et récupère, dans le formulaire principale
> (par le biais de    =Formulaire!NomSubForm1!NomDuChampEnPied
> classique), dans un champ.

>     C'est une manip qui me permet d'appeler, dans le 2ème sous-
> formulaire, le champ en question plutôt que de passer par une formule
> à rallonge pour passer de subform1 à subform2.

>      Dans le 2ème formulaire, jusqu'ici, je récupérais donc bien le
> champ en question (par le biais de
> =Formulaires.NomMainForm.champ    classique encore).

>      Jusqu'à aujourd'hui: la seule différence est que j'ai ef fectué un
> tri dans la requête source de données du 1er sous-formulaire.



En fait je ne sais pas si je dois m'acharner à résoudre ce problème.
Le simple fait de cliquer sur une valeur d'une liste dans le
formulaire principale (dans lequel se trouvent les 2 sous-formulaires)
suffit à 'forcer' le rafraîchissement dudit champs.

Merci pour Gloops pour le commentaire.

Pascal

Raconte voir ce que donne un Requery sur le contrôle concerné ?
C'est un champ du premier enregistrement, qu'il faut sortir, c'est bien ça ?


>      'champ' affiche toujours bien les valeurs,
> '=Formulaires.NomMainForm.champ' est vide.

>     J'ai enlevé le tri puis l'ai remis: j'ai bien affichage, dans le
> 2ème formulaire, ou pas suivant qu'il y a un tri ou pas.

> Je suis un peu bluffé là; quelqu'un a déjà vu ce problème? Et l'a
> résolu?

> Merci d'avance pour toute aide, direction.

> Pascal

>   *: c'est un calcul de maximum

Avatar
Gloops
Pascal a écrit, le 13/02/2012 09:36 :
En fait je ne sais pas si je dois m'acharner à résoudre ce problè me.
Le simple fait de cliquer sur une valeur d'une liste dans le
formulaire principale (dans lequel se trouvent les 2 sous-formulaires)
suffit à 'forcer' le rafraîchissement dudit champs.

Merci pour Gloops pour le commentaire.

Pascal




ça m'arrange, parce qu'il faut avouer que c'est une affaire un peu
bizarre :)

Je n'avais pas vu que ça impliquait un maximum.
Il se peut qu'il y ait une astuce qui interfère entre l'algorithme
utilisé pour évaluer le maximum et celui pour trier. Le maximum est
évalué à chaque enregistrement ?

La suite tient un peu de la capillo-section longitudinale, mais ça peut
être une gymnastique intellectuelle qui peut s'avérer précieuse dan s
certaines circonstances.
Avatar
Pascal
On 13 fév, 15:09, Gloops wrote:
Pascal a écrit, le 13/02/2012 09:36 :

> En fait je ne sais pas si je dois m'acharner à résoudre ce problè me.
> Le simple fait de cliquer sur une valeur d'une liste dans le
> formulaire principale (dans lequel se trouvent les 2 sous-formulaires)
> suffit à 'forcer' le rafraîchissement dudit champs.

> Merci pour Gloops pour le commentaire.

> Pascal

ça m'arrange, parce qu'il faut avouer que c'est une affaire un peu
bizarre :)

Je n'avais pas vu que ça impliquait un maximum.
Il se peut qu'il y ait une astuce qui interfère entre l'algorithme
utilisé pour évaluer le maximum et celui pour trier. Le maximum est
évalué à chaque enregistrement ?

La suite tient un peu de la capillo-section longitudinale, mais ça peut
être une gymnastique intellectuelle qui peut s'avérer précieuse dan s
certaines circonstances.



J'ai répondu un peu rapidement ce matin (comme quoi, puisque de toutes
façons j'étais amené à opérer une sélection dans le formulaire
principale qui avait pour effet de 'rafraîchir' les champs qui
m'intéressaient, je n'étais finalement plus intéressé par un
acharnement à trouver les raisons du non-rafraîchissement desdits
champs), j'effectue une entrée de données qui ne peut être menée à
bien du fait de ce problème.

Retour à la case départ: le problème persiste et doit être résolu sous
peine de me retrouver avec des champs Null ou dont les valeurs ne sont
pas compatibles en termes de format.

je fais un DoCmd.Requery qui est absolument nécessaire autrement je me
retrouve avec un enregistrement impossible dans un sous-formulaire. Ca
ne résoud pour autant pas mon problème, je pense même qu'il est à l a
base de celui auquel je fais face: les champs calculés sont vidés.

Je tourne en rond, je sens déjà la journée perdue sur ce problème.

Pascal
Avatar
Gloops
Pascal a écrit, le 13/02/2012 15:11 :
On 13 fév, 15:09, Gloops wrote:
Pascal a écrit, le 13/02/2012 09:36 :

En fait je ne sais pas si je dois m'acharner à résoudre ce problè me.
Le simple fait de cliquer sur une valeur d'une liste dans le
formulaire principale (dans lequel se trouvent les 2 sous-formulaires )
suffit à 'forcer' le rafraîchissement dudit champs.



Merci pour Gloops pour le commentaire.



Pascal



ça m'arrange, parce qu'il faut avouer que c'est une affaire un peu
bizarre :)

Je n'avais pas vu que ça impliquait un maximum.
Il se peut qu'il y ait une astuce qui interfère entre l'algorithme
utilisé pour évaluer le maximum et celui pour trier. Le maximum es t
évalué à chaque enregistrement ?

La suite tient un peu de la capillo-section longitudinale, mais ça p eut
être une gymnastique intellectuelle qui peut s'avérer précieuse dans
certaines circonstances.



J'ai répondu un peu rapidement ce matin (comme quoi, puisque de toute s
façons j'étais amené à opérer une sélection dans le formula ire
principale qui avait pour effet de 'rafraîchir' les champs qui
m'intéressaient, je n'étais finalement plus intéressé par un
acharnement à trouver les raisons du non-rafraîchissement desdits
champs), j'effectue une entrée de données qui ne peut être mené e à
bien du fait de ce problème.

Retour à la case départ: le problème persiste et doit être ré solu sous
peine de me retrouver avec des champs Null ou dont les valeurs ne sont
pas compatibles en termes de format.

je fais un DoCmd.Requery qui est absolument nécessaire autrement je m e
retrouve avec un enregistrement impossible dans un sous-formulaire. Ca
ne résoud pour autant pas mon problème, je pense même qu'il est à la
base de celui auquel je fais face: les champs calculés sont vidés.

Je tourne en rond, je sens déjà la journée perdue sur ce problè me.

Pascal



Donne voir le code de la requête, ça peut aider à mieux se rendre c ompte.
Avatar
Pascal
Je pense avoir résolu le problème: le calcul (de dates) ne se faisait
pas tant qu'il y avait des valeurs 'null'. J'ai eu recours à la
fonction NZ bien pratique et ai forcé le format de tous les champs à
Date, abrégé. Ca donne, au départ, un 30/12/1899 assez bizarre mais ça
contourne le problème et le calcul peut s'effectuer.

J'évite aussi, dans le premier sous-formulaire, calculer un max en
effectuant un tri préalable.

Je tâche de documenter au fil de l'eau, je n'exclue pas de retomber
sur de tels problèmes dans le futur.

Merci Gloops de la proposition d'aide.

Pascal
On 13 fév, 15:14, Gloops wrote:
Pascal a écrit, le 13/02/2012 15:11 :

> On 13 fév, 15:09, Gloops  wrote:
>> Pascal a écrit, le 13/02/2012 09:36 :

>>> En fait je ne sais pas si je dois m'acharner à résoudre ce probl ème.
>>> Le simple fait de cliquer sur une valeur d'une liste dans le
>>> formulaire principale (dans lequel se trouvent les 2 sous-formulaires )
>>> suffit à 'forcer' le rafraîchissement dudit champs.

>>> Merci pour Gloops pour le commentaire.

>>> Pascal

>> ça m'arrange, parce qu'il faut avouer que c'est une affaire un peu
>> bizarre :)

>> Je n'avais pas vu que ça impliquait un maximum.
>> Il se peut qu'il y ait une astuce qui interfère entre l'algorithme
>> utilisé pour évaluer le maximum et celui pour trier. Le maximum es t
>> évalué à chaque enregistrement ?

>> La suite tient un peu de la capillo-section longitudinale, mais ça p eut
>> être une gymnastique intellectuelle qui peut s'avérer précieuse dans
>> certaines circonstances.

> J'ai répondu un peu rapidement ce matin (comme quoi, puisque de toute s
> façons j'étais amené à opérer une sélection dans le formula ire
> principale qui avait pour effet de 'rafraîchir' les champs qui
> m'intéressaient, je n'étais finalement plus intéressé par un
> acharnement à trouver les raisons du non-rafraîchissement desdits
> champs), j'effectue une entrée de données qui ne peut être mené e à
> bien du fait de ce problème.

> Retour à la case départ: le problème persiste et doit être ré solu sous
> peine de me retrouver avec des champs Null ou dont les valeurs ne sont
> pas compatibles en termes de format.

> je fais un DoCmd.Requery qui est absolument nécessaire autrement je m e
> retrouve avec un enregistrement impossible dans un sous-formulaire. Ca
> ne résoud pour autant pas mon problème, je pense même qu'il est à la
> base de celui auquel je fais face: les champs calculés sont vidés.

> Je tourne en rond, je sens déjà la journée perdue sur ce problè me.

> Pascal

Donne voir le code de la requête, ça peut aider à mieux se rendre c ompte.
Avatar
Gloops
Pascal a écrit, le 15/02/2012 10:04 :
Je pense avoir résolu le problème: le calcul (de dates) ne se faisa it
pas tant qu'il y avait des valeurs 'null'. J'ai eu recours à la
fonction NZ bien pratique et ai forcé le format de tous les champs à
Date, abrégé. Ca donne, au départ, un 30/12/1899 assez bizarre ma is ça
contourne le problème et le calcul peut s'effectuer.

J'évite aussi, dans le premier sous-formulaire, calculer un max en
effectuant un tri préalable.

Je tâche de documenter au fil de l'eau, je n'exclue pas de retomber
sur de tels problèmes dans le futur.

Merci Gloops de la proposition d'aide.

Pascal
On 13 fév, 15:14, Gloops wrote:
Pascal a écrit, le 13/02/2012 15:11 :

On 13 fév, 15:09, Gloops wrote:
Pascal a écrit, le 13/02/2012 09:36 :





En fait je ne sais pas si je dois m'acharner à résoudre ce prob lème.
Le simple fait de cliquer sur une valeur d'une liste dans le
formulaire principale (dans lequel se trouvent les 2 sous-formulair es)
suffit à 'forcer' le rafraîchissement dudit champs.







Merci pour Gloops pour le commentaire.







Pascal







ça m'arrange, parce qu'il faut avouer que c'est une affaire un peu
bizarre :)





Je n'avais pas vu que ça impliquait un maximum.
Il se peut qu'il y ait une astuce qui interfère entre l'algorithme
utilisé pour évaluer le maximum et celui pour trier. Le maximum est
évalué à chaque enregistrement ?





La suite tient un peu de la capillo-section longitudinale, mais ça peut
être une gymnastique intellectuelle qui peut s'avérer précieus e dans
certaines circonstances.





J'ai répondu un peu rapidement ce matin (comme quoi, puisque de tou tes
façons j'étais amené à opérer une sélection dans le formu laire
principale qui avait pour effet de 'rafraîchir' les champs qui
m'intéressaient, je n'étais finalement plus intéressé par un
acharnement à trouver les raisons du non-rafraîchissement desdits
champs), j'effectue une entrée de données qui ne peut être mené e à
bien du fait de ce problème.



Retour à la case départ: le problème persiste et doit être ré solu sous
peine de me retrouver avec des champs Null ou dont les valeurs ne son t
pas compatibles en termes de format.



je fais un DoCmd.Requery qui est absolument nécessaire autrement je me
retrouve avec un enregistrement impossible dans un sous-formulaire. C a
ne résoud pour autant pas mon problème, je pense même qu'il est à la
base de celui auquel je fais face: les champs calculés sont vidés .



Je tourne en rond, je sens déjà la journée perdue sur ce problè me.



Pascal



Donne voir le code de la requête, ça peut aider à mieux se rendr e compte.






Ah oui le maximum de valeurs qui incluent des nuls, ça peut coincer :)