[Résolu]Insertion d'un enregistrement dans une autre table

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.
piotpiot
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 24 nov. 2017 08:43

[Résolu]Insertion d'un enregistrement dans une autre table

Message par piotpiot »

Bonjour,
Je travaille avec une table "BuvetteVersement" avec les réf Membres, date et montant des versements. D'un autre côté, j'ai une table "Compte à Vue" avec date d'opération, débit, crédit, Tiers (où est repris "Membres"), une colonne Membres, s'il s'agit d'une opération concernant un versement buvette, et la catégorie de l'opération (dont buvette). Afin d'éviter d'éviter de devoir rentrer deux fois mes données de versement buvette, c'est à dire dans la table "BuvetteVersement" et dans la table "Compte à vue", existe-t-il une méthode plus ou moins simple pour insérer les données d'un enregistrement "BuvetteVersement" dans la table compte à vue?
Merci pour vos éclairages.
Pièces jointes
CCT.odb
(65.11 Kio) Téléchargé 111 fois
Dernière modification par piotpiot le 28 nov. 2017 19:27, modifié 1 fois.
Libre Office 5.4.2.2 - Linux Mint Serena
Avatar de l’utilisateur
Astrée
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 01 août 2017 21:45
Localisation : Paris + Ile déserte

Re: Insertion d'un enregistrement dans une autre table

Message par Astrée »

Bonjour Piotpiot,
Je n'ai pas encore pris le temps d'étudier à fond ta structure de base de données, mais je crois que le problème n'est pas d'automatiser une sorte de double saisie : sur une base de données bien conçue, chaque donnée ne doit se trouver qu'en un seul endroit (un seul champ d'une seule table), afin qu'une éventuelle modification ou suppression ne demande qu'une seule opération de ta part, seule façon d'être certain de ne pas se tromper.
Sinon, tu seras tôt ou tard confronté à des problèmes de redondances (= j'ai deux fois la "même" donnée, mais elles n'ont pas la même valeur, car faute de frappe, erreur dans un automatisme programmé, oubli etc.).

Mon intuition est que ta table Compte à Vue, si elle récapitule bien des opérations qui sont déjà enregistrées ailleurs dans ta base de données, pourrait être supprimée et remplacée par une requête sur les autres tables, requête qui récapitulerait les opérations.

Mais je verrai ça de plus près dès que possible.

Astrée
AOO 4.1.14 sur Mac OSX 10.11.6
LibO 3.5.6.2 sur Windows XP
(obligation de versions)
piotpiot
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 24 nov. 2017 08:43

Re: Insertion d'un enregistrement dans une autre table

Message par piotpiot »

Merci Astrée pour ta première réponse. Si je comprends bien, ma façon d'aborder le problème serait erronée. J'attends une confirmation de ta part dès que tu auras jeté un coup d'œil sur ma base. Encore merci.
Libre Office 5.4.2.2 - Linux Mint Serena
Avatar de l’utilisateur
Astrée
Membre OOrganisé
Membre OOrganisé
Messages : 76
Inscription : 01 août 2017 21:45
Localisation : Paris + Ile déserte

Re: Insertion d'un enregistrement dans une autre table

Message par Astrée »

Bonjour,
En fait (et toujours avant analyse vraiment approfondie), il y a deux cas possibles : 1) soit toutes les infos qu'il y a dans BuvetteVersement pourraient se trouver dans une table CompteàVue (éventuellement enrichie de nouveaux champs), et alors la table BuvetteVersement pourrait disparaître 2) soit c'est l'inverse : toutes les infos de CompteàVue pourraient se trouver dans BuvetteVersement, et alors la table CompteàVue est redondante et source d'erreurs.
A regarder les données exemples que tu as fournies (mais pas certain qu'elles reflètent l'intégralité des cas possibles), j'ai l'impression qu'il y a dans CompteàVue des infos qui ne relèvent pas de l'activité de la buvette, donc je suis tentée par la solution 1).
Si tu ne gardes que la table CompteàVue, tu pourras en extraire très facilement les activités de la buvette par une requête (sauf s'il y a des activités de la buvette qui ne donnent pas lieu à un enregistrement dans CompteàVue, auquel cas on serait dans un cas 3) que je n'ai pas encore eu le temps de creuser :)

J'espère que ce n'est pas du charabia... Le but reste d'éviter d'avoir des données en double plutôt que d'organiser leur synchronisation.
Astrée
AOO 4.1.14 sur Mac OSX 10.11.6
LibO 3.5.6.2 sur Windows XP
(obligation de versions)
piotpiot
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 24 nov. 2017 08:43

Re: Insertion d'un enregistrement dans une autre table

Message par piotpiot »

Bonjour,
Suite à ta première réflexion, j'ai revu une autre façon d'aborder le problème en créant une table pour chaque "Catégorie" qui était reprise initialement dans ma table "Compte à vue". Peut-être me serait-il possible ensuite, à l'aide de requêtes d'aboutir au résultat désiré? Qu'en penses-tu?
Pièces jointes
Capture du 2017-11-28 13-23-09.png
Libre Office 5.4.2.2 - Linux Mint Serena
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Insertion d'un enregistrement dans une autre table

Message par Piaf »

Bonjour
Quel est l'intérêt de la table BuvetteVersement dans ta première base ? Je pense que tu pourrais faire les saisies directement dans la table Compte à Vue.
Comme le précise Astrée, les mêmes valeurs à stocker dans des tables différentes ne devraient être que les champs de liaison.
Un petit exemple en modifiant un peu la structure de ta base
Relations.png
CaV.png
A+
Pièces jointes
CCT.odb
(28.74 Kio) Téléchargé 113 fois
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
piotpiot
NOOuvel adepte
NOOuvel adepte
Messages : 11
Inscription : 24 nov. 2017 08:43

Re: Insertion d'un enregistrement dans une autre table

Message par piotpiot »

Et bien merci Piaf! Je vois que je n'ai pas encore intégré la philosophie de Base, et qu'il est possible de faire simple avec tous les outils mis à disposition. Ta version m'aide beaucoup. Merci aussi à Astrée.
Libre Office 5.4.2.2 - Linux Mint Serena
Répondre