[Résolu] Enregistrement de champ numérique calculer automatiquement

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.
GJPierre
Fraîchement OOthentifié
Messages : 3
Inscription : 10 févr. 2024 09:16

[Résolu] Enregistrement de champ numérique calculer automatiquement

Message par GJPierre »

Bonjour,
J'ai un formulaire avec 7 champs numériques, les 6 premiers champs je les renseigne manuellement, le 7e champ est la la somme des 6 autres renseigné par une formule, j'ai aussi ajouter un bouton "Enregistrer".
Je précise que tous mes champs sont liés à ma table via la propriété "Données" > champ de données.
J'ai lié au bouton "Enregistrer" dans les propriété général l'action " enregistrer l'enregistrement actif.
Lorsque j'appuie sur le bouton "Enregistrer" ma table se mets à jour à l'exception du "Champ numérique" renseigner par une formule ?
Est-ce que vous pouvez m'aider.
Merci
Dernière modification par GJPierre le 12 févr. 2024 10:22, modifié 2 fois.
Libre Office version 7.6.4.1 (X86_64) sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: Enregistrement de champ numérique calculer automatiquement

Message par micmac »

Bonjour et bienvenue sur le forum,

Joindre un fichier facilite le travail des bénévoles et peut s'avérer fort utile pour obtenir une solution adaptée.
Comment joindre un fichier.
Veillez également à dépersonnaliser votre fichier.
.
Dans votre signature il y a écrit :
Libre Office version 7.5.3.2 sous Windows 10
Afin de profiter des dernières améliorations, pensez à être à jour de la dernière version officielle stable
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Enregistrement de champ numérique calculer automatiquement

Message par jeanmimi »

Bonjour,
C'est possible, sans Macro, en faisant faire le calcul dans une Requête et en affichant le résultat dans un sous-formulaire (SubForm) en relation avec le Formulaire (MainForm) principal.
Il y a plusieurs exemples dans le forum, comme ici :
https://forum.openoffice.org//fr/forum/ ... 75#p356775
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
GJPierre
Fraîchement OOthentifié
Messages : 3
Inscription : 10 févr. 2024 09:16

Re: Enregistrement de champ numérique calculer automatiquement

Message par GJPierre »

Le calcul se fait correctement, selon cette macro

Code : Tout sélectionner

Sub SommeDesChamps
    Dim Form As Object
    Dim Field1 As Object
    Dim Field2 As Object
    Dim Field3 As Object
    Dim Field4 As Object
    Dim Field5 As Object
    Dim Field6 As Object
    Dim Field7 As Object
    Dim Field8 As Object
    Dim SumField As Object
    Dim Total As String
    Form = ThisComponent.DrawPage.Forms.getByName("MonFormulaire")
    
    Field1 = Form.getByName("Champ1") 
    Field2 = Form.getByName("Champ2") 
    Field3 = Form.getByName("Champ3") 
    Field4 = Form.getByName("Champ4") 
    Field5 = Form.getByName("Champ5") 
    Field6 = Form.getByName("Champ6") 
    Field7 = Form.getByName("Champ7")
    Field8 = Form.getByName("Champ8") 
    SumField = Form.getByName("Champ9") 
    
    Total = Field1.Value + Field2.Value + Field3.Value + Field4.Value + Field5.Value + Field6.Value + Field7.Value + Field8.Value
    SumField.value =Total

End Sub
seulement quand j'enregistre ces données dans ma table, le champ9 ne s'enregistre pas ?
Dernière modification par micmac le 12 févr. 2024 09:16, modifié 1 fois.
Raison : Code balisé pour faciliter la lecture
Libre Office version 7.6.4.1 (X86_64) sous Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: Enregistrement de champ numérique calculer automatiquement

Message par micmac »

Bonjour,

Bis repetita
micmac a écrit : 10 févr. 2024 09:40 Comment joindre un fichier.
Veillez également à dépersonnaliser votre fichier.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
GJPierre
Fraîchement OOthentifié
Messages : 3
Inscription : 10 févr. 2024 09:16

Re: Enregistrement de champ numérique calculer automatiquement

Message par GJPierre »

Bonjour,

Vous trouverez ci-joint une copie de ma base de donnée.

Bonnes salutations
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office version 7.6.4.1 (X86_64) sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Enregistrement de champ numérique calculer automatiquement

Message par Dude »

Salut,

Comme l'indique jeanmimi, on ne stocke jamais d'informations calculées.
Ce que tu cherches à faire est contre-productif dans une base de données.

Tu n'as qu'une seule table dans ton ODB. Je ne vois pas l'intérêt d'utiliser Base dans ce cas.
Une feuille de calcul suffit d'autant que c'est pour faire un tirage de loto.


GJPierre a écrit : 12 févr. 2024 08:21 seulement quand j'enregistre ces données dans ma table, le champ9 ne s'enregistre pas ?
Les questions sur les macros se postent dans la bonne section (cf. bandeau rouge en haut de la page).
Je ne vois pas dans ton code, un quelconque commit pour faire cette action d'enregistrement.