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

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
camil
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 28 mai 2019 10:53

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

Message 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
Pièces jointes
ZoneListe_SousFor.odb
(20.59 Kio) Téléchargé 136 fois
Dernière modification par camil le 18 juin 2019 09:39, modifié 2 fois.
LibreOffice 6.3.5 X64 - Windows 10
Nsebastien
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 27 déc. 2018 10:46

Re: Zone de liste et sous-formulaire

Message 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'
Pièces jointes
Sans_Titre_1.png
Apache OpenOffice 4.1.5 sous Windows 10
LibreOffice 6.1.5.2 sous Windows 10
camil
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 28 mai 2019 10:53

Re: Zone de liste et sous-formulaire

Message par camil »

Je ne pense pas que l'erreur vienne de là.
Chaque contrôle a sa propre étiquette dans son propre formulaire.
LibreOffice 6.3.5 X64 - Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Zone de liste et sous-formulaire

Message 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
Solde.png (4.47 Kio) Consulté 1606 fois
Form.png
Form.png (9.55 Kio) Consulté 1606 fois
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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
camil
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 28 mai 2019 10:53

Re: Zone de liste et sous-formulaire

Message 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 ?
Pièces jointes
ZoneListe_SousFor.odb
(21.03 Kio) Téléchargé 133 fois
LibreOffice 6.3.5 X64 - Windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

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

Message par Piaf »

Re
Regarde dans le navigateur de formulaire où est situé le bouton Afficher
Afficher.png
A+
Pièces jointes
ZoneListe_SousFor.odb
(21.1 Kio) Téléchargé 153 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
camil
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 28 mai 2019 10:53

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

Message 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 +
LibreOffice 6.3.5 X64 - Windows 10
Répondre