Page 1 sur 1

[Résolu] Zone de liste et sous-formulaire - Base Firebird

Publié : 16 juin 2019 08:29
par camil
Bonjour,
Je viens encore pour un problème de débutant. Depuis hier je cherche, ici et ailleurs, je ne trouve pas de solution.
Je vous joins une table exemple pour être plus clair.
J'ai deux tables
1 - T_JOURNAUX avec deux champs ID_JOURNAL et NOM_JOURNAL
2 - T_TEST avec quatre champs ID_TEST, JOURNAL_ID, DEBIT et CREDIT
avec une relation entre ID_JOURNAL et JOURNAL_ID

Là dessus je fait deux requêtes
1 - R_Somme sur T_TEST pour calculer la somme des débits et crédit par journal
2 - R_Solde sur R_Somme pour calculer la différence entre débits et crédits

Je fais un premier formulaire F_Grille où j'affiche T_TEST dans un contrôle de table et un sous-formulaire où j'affiche le solde. Ca roule
Je tente de faire un autre formulaire F_Liste où j'affiche les enregistrements de T_TEST dans une zone de liste avec un sous-formulaire pour afficher le solde.
Rien à faire, mon contrôle Solde affiche le solde du premier enregistrement de T_TEST (avant même la sélection) quelque soit ma sélection dans la zone de liste.
Je ne comprends pas où est mon erreur.

Je ne comprends pas non plus pourquoi ma requête R_Solde affiche le résultat sans prendre en compte les décimales - elle affiche 1000 là où je devrais avoir 10,00
Mes champs DEBIT et CREDIT sont de type décimal

Re: Zone de liste et sous-formulaire

Publié : 16 juin 2019 08:56
par Nsebastien
Bonjour,

Bon je suis pas un expert en Base de donnée, mais l'erreur ne pourrait pas venir d'ici? (voir photo en pj)

Le champ d'étiquette ne devrait pas être en rapport avec ID_JOURNAL ?

En espérant que d'autres informaticiens passionnés viennent pour aider,

Respect'

Re: Zone de liste et sous-formulaire

Publié : 16 juin 2019 16:19
par camil
Je ne pense pas que l'erreur vienne de là.
Chaque contrôle a sa propre étiquette dans son propre formulaire.

Re: Zone de liste et sous-formulaire

Publié : 16 juin 2019 20:12
par Piaf
Bonjour
Merci de préciser que ta base est une base Firebird.
camil a écrit :Mes champs DEBIT et CREDIT sont de type décimal
Pourquoi ne pas les définir en double et utiliser un champ formaté en numéraire dans le formulaire ?
Solde.png
Form.png
camil a écrit :(avant même la sélection) quelque soit ma sélection dans la zone de liste.
Une zone de liste permet la sélection d'une valeur, sans Table intermédiaire ou macro, elle ne permet pas d'afficher un enregistrement défini Pour cela voir [Base] Sélection d'enregistrement avec une liste déroulante
A+

Re: Zone de liste et sous-formulaire

Publié : 17 juin 2019 16:42
par camil
Piaf a écrit : Pourquoi ne pas les définir en double et utiliser un champ formaté en numéraire dans le formulaire ?
Effectivement je n'ai plus ce problème de décimales.
Piaf a écrit :Une zone de liste permet la sélection d'une valeur, sans Table intermédiaire ou macro, elle ne permet pas d'afficher un enregistrement défini. Pour cela voir...
J'avais regardé cette page ce week-end et j'avais buté dessus, puis laissé tomber.
Sur ton conseil j'ai donc insisté et ça marche (je mets la base en pièce jointe). Mais j'ai bataillé ferme car je n'arrive pas à comprendre la requête inscrite dans la zone de liste. Chez moi :

Code : Tout sélectionner

"SELECT "ID_JOURNAL", "ID_JOURNAL" FROM "T_JOURNAUX""
Pourquoi est-il nécessaire de sélectionner deux fois le même champs pour que celà fonctionne ? Y aurait-il un lien à consulter pour comprendre ça ?

Re: Zone de liste et sous-formulaire - Base Firebird

Publié : 17 juin 2019 17:18
par Piaf
Re
Regarde dans le navigateur de formulaire où est situé le bouton Afficher
Afficher.png
A+

Re: Zone de liste et sous-formulaire - Base Firebird

Publié : 18 juin 2019 07:37
par camil
Je te remercie de ton aide.
Effectivement le bouton dans le sous-formulaire ne provoque pas la demande de confirmation; c'est plus confortable.
Je vais plancher sur cette nouvelle version et marquer ce sujet comme résolu
A +