[Résolu] création d'un controle parrainage

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.
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

[Résolu] création d'un controle parrainage

Message par yerffoj »

Bonjour,

grâce à vous j'ai une base qui fonctionne correctement et je voudrais la développer encore plus. Je rappel que je travail dans un société qui effectue des tests consommateurs, c'est à dire que des personnes viennent tester des produits et reçoivent une indemnisation pour cela.

Nous allons prochainement mettre en place un système de parrainage dans lequel le parrain reçoit un bon d'achat lorsque le filleul participe à son 1er test.
je ne sais pas vraiment comment procéder pour mettre en place sur la base un contrôle parrainage. Avez-vous une idée?

Mon idée serait de rentrer ou choisir le nom du parrain dans le formulaire coordonnées (personne se trouvant déjà dans la base dans la table coordonnées) pour le nouvel inscrit (nouvel inscrit qui sera également rentré dans la table coordonnées). De plus il faudrait qu'une sorte d'alerte me signale que je dois indemniser le parrain, une fois que le nouvel inscrit ait participé à son 1er test, Est ce possible ?
Base-joffrey - anonyme.odb
merci pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par yerffoj le 30 mars 2018 10:05, modifié 3 fois.
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Bonjour
Je n'ai pas compris la relation un à plusieurs pour la table Remarque.
relations.png
Un petit exemple en pièce jointe.
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

Bonjour,

merci Piaf pour ta proposition. J'ai essayé de d'intégrer ta proposition dans ma base et je rencontre quelques difficultés.
En fait, je voudrais afficher/choisir le nom du Parrain pour une personne donnée (le filleul) dans mon formulaire. Sur ta proposition c'était l'inverse, le nom du ou des filleul(s) sur le parrain.

J'ai essayé de repartir de ce que tu avais fais mais je bloque. je peux choisir un nom dans ma colonne Parrain mais lorsque je veux enregistrer ==> message d'erreur
"Erreur lors de l'insertion du nouvel enrgistrement. Attempt to insert null into a non-nullable column: column: RefCoord table: Table Parrainage in statement[INSERT INTO"Table Parrainage" ("BA Parrainage","RefParrain")VALUES(?,?)]"
Que dois je coriger pour que cela fonctionne?

j'ai changé les appelations que tu avais donné pour intégrer dans ma base ==> tFilleul est devenu Table Parrainage ; Ref Filleul est devenu RefParrain ; bAchat est devenu BA Parrainage
relation table.png
Je pense que l'erreur vient de là mais je ne sais pas la corriger...
erreur.png
merci,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Bonjour
Dans mon exemple, un parrain pouvait avoir plusieurs filleuls, il fallait donc créer une table supplémentaire avec une relation un à plusieurs.
Si tu veux sélectionner le parrain à partir du filleul, un filleul n'a qu'un seul parrain, tu n'as donc plus besoin de table supplémentaire, il suffit de créer un champ parrain type Integer dans la table coordonnées et dans le formulaire, une liste déroulante

Code : Tout sélectionner

SELECT DISTINCT "rCoordonnees"."Eleve", "rCoordonnees"."ID_coordonnee" FROM "rCoordonnees", "Participation" WHERE "rCoordonnees"."ID_coordonnee" = "Participation"."refCoordonnees" ORDER BY "rCoordonnees"."Eleve" ASC
Parrain.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

Merci beaucoup Piaf :)

j'avais essayer de faire cela par moi même de cette façon mais j'ai beaucoup de mal à comprendre le principe des instructions SQL...

dernière petite chose : Dans mon formulaire je peux choisir le nom du parrain via la zone de liste et cela fonctionne très bien. Par contre quand je regarde dans ma table ensuite dans ma colonne parrain j'ai l'ID coordonnées et je voudrais avoir le nom et le prénom de la personne. comment faire?

merci
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Re
Le stockage de l'identifiant dans la table suffit, il ne servirait à rien de stocker le nom et le prénom, une table n'est faite que pour stocker les données.
Pour l'affichage ou la saisie tu disposes des formulaires.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

Re,

Oui je sais qu'une base est faite pour stocker des données mais j'ai besoin qu'elle soit fonctionnelle.
et ce petit détail qui afficherai le nom et le prénom du parrain me ferai gagner beaucoup de temps... Si c'était possible de me dire comment faire, cela serait cool.
merci

a+
open office 4.1.0 sur windows 10
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

re,

je viens de me rendre compte d'un petit soucis. Quand je choisis mon parrain dans le formulaire, il me manque des noms, je n'ai que les personnes qui ont déjà participé à une étude. je voudrais pouvoir choisir parmi toute les personnes de ma table coordonnées.

voici le SQL que j'ai dans ma zone de liste : SELECT DISTINCT "rCoordonnees"."Eleve", "rCoordonnees"."ID_coordonnee" FROM "rCoordonnees", "Participation" WHERE "rCoordonnees"."ID_coordonnee" = "Participation"."refCoordonnees" ORDER BY "rCoordonnees"."Eleve" ASC

je pense que le problème vient de là puisque il ya la table Participation dans le code mais je n'arrive pas à le corriger.

merci pour votre aide.
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Bonjour
yerffoj a écrit :je voudrais pouvoir choisir parmi toute les personnes de ma table coordonnées.

Code : Tout sélectionner

SELECT "Eleve", "ID_coordonnee" FROM "rCoordonnees" ORDER BY "Eleve" ASC
yerffoj a écrit :et ce petit détail qui afficherai le nom et le prénom du parrain me ferai gagner beaucoup de temps... Si c'était possible de me dire comment faire, cela serait cool.
Dans le formulaire Coordonnées, c'est bien le nom et le prénom qui sont affichés, il suffit d'appliquer le même principe si tu dois afficher le parrain dans un autre formulaire.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

Re,

j'ai esssayé toute la matinée de résoudre mon problème mais je n'y suis pas arrivé. Et quand je vois qu'il y avait que ça à écrire je suis blazé lol.
en tout cas merci.

En fait, cela serait plutôt dans une requête que j'aimerai afficher le nom du parrain et pas dans un autre formulaire...
requete.png
j'ai créé cette requete qui correspond à ce que j'ai besoin le seul soucis c'est que je voudrais avoir le nom entier du parrain plutot que l IDcoordonnée.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Re
yerffoj a écrit :En fait, cela serait plutôt dans une requête que j'aimerai afficher le nom du parrain
A quoi sera utilisée cette requête ?
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

enfait je voudrais voir rapidement quels sont les nouveaux inscrits via Parrainage et ayant effectué une séance chez nous. Du coup je pourrai voir en activant cette requête à quel parrain je dois envoyer un bon d'achat. (notre offre de parrainage récompense le parrain d'un bon d'achat lorsque son filleul a effectué sa 1ere séance chez nous)

En fait une fois que j'aurai rentré les indemnisations des personnes ayant participé à la dernière étude que l'on a effectué (grâce à la manipulation que tu m'as donné sur un précédent sujet). J'aurai également rentré le nom des parrains pour les nouveaux inscrit. Je lance la requête en filtrant sur l'indemnisation de la dernière étude et cela me sors les personnes ayant participé à la dernière études, je peux voir les nouveaux inscrit via la colonne parrain (les anciens auront une case vide dans cette colonne) et je voudrais voir directement le nom du parrain qu'il faudra que j'indemnise. Avoir L'Id coordonnées me rajoute des étapes. si j'ai 50 nouveaux inscrit je vais perdre un temps fou à faire la correspondance entre l'ID et le nom des 50 personne.

j'espère avoir été clair, n'hésite pas à me demander des précisions si besoin.

merci,
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Re
Pourquoi ne pas créer un formulaire sur ta requête ?
Requete.png
Parrain.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

Oui c'est vrai je pourrais faire un formulaire mais je trouve que c'est moins pratique si je dois exporter mes données sur un tableur. Avec une requête je peux copier coller directement sur mon tableur...
open office 4.1.0 sur windows 10
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: création d'un controle parrainage

Message par Piaf »

Re
Si c'est juste pour de la consultation, tu peux essayer

Code : Tout sélectionner

SELECT "rCoordonnees"."ID_coordonnee", "rCoordonnees"."Eleve", "rCoordonnees_2"."Eleve" AS "Parain", "rCoordonnees"."BAParrainage", "Participation"."refEtude", "Participation"."Montant" FROM "rCoordonnees" AS "rCoordonnees_1", "rCoordonnees", "rCoordonnees" AS "rCoordonnees_2", "Participation" WHERE "rCoordonnees_1"."ID_coordonnee" = "rCoordonnees"."ID_coordonnee" AND "rCoordonnees_1"."Parrain" = "rCoordonnees_2"."ID_coordonnee" AND "Participation"."refCoordonnees" = "rCoordonnees"."ID_coordonnee" AND "Participation"."refEtude" = 62
Requete.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

J'ai essayé le code SQl que tu m'as donné mais cela ne fonctionne pas, il me met ce message d'erreur :? :
erreur.png
Je pense que cela provient du fait que je n'ai pas de requête nommé "rCoordonnees_1" et "rCoordonnees_2". J'ai juste une requête "rCoordonnees".
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4.1.0 sur windows 10
yerffoj
Membre lOOyal
Membre lOOyal
Messages : 27
Inscription : 13 mars 2018 09:59

Re: création d'un controle parrainage

Message par yerffoj »

c'est bon ca marche, il y ajuste une erreur dans le code, il manquait un r à "parrain".
c'est exactement ce qu'il me fallait.

c'est super, merci beaucoup Piaf pour ton aide.

Je cloture le sujet !
open office 4.1.0 sur windows 10