Clé Composée !!

Signaler
Messages postés
18
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 octobre 2012
-
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
-
Salut à tous
Je travail sur un projet de Budget, et je veut facilité la saisi du code d'opération.
Sachant que j'ai :
- Une base de donnée "Secteur" avec un code (Code_Secteur) ex : 'C' ---> A
- Une base de donnée "Sous_Secteur" avec un code (Code_SousSecteur) ex : 'CNN' ---> A12
- Une base de donnée "Chapitre" avec un code (Code_Chapitre) ex : 'NNN' ---> 392
- Une base de donnée "Article" avec un code (Code_Article) ex : 'N' ---> 8
- Une base de donnée "Commune" avec un code (Code_Commune) ex : 'NNN' ---> 224
- Et la base de donnée "Opération" qui héberge tous ces Codes avec les intitulés et montants des projets;

Comme vous voyez, la clé ou le code d'opération se compose de clés des ses Bases de Donnée, je suis obligé d'utiliser 05 Champs pour les reliées en exploitation et consultation des données.

* je veut faire un seule Mask Edit avec un contrôle de saisi (A-A12-392-8-224), mais que je puisse relier les 05 bases de données avec leurs clés correspondantes.
Merci.

6 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
11
Bonjour,
Mets cela dans la propriété EditMask de ton TMaskEdit :
!>a<->a<00-000-0-000;_

@+
Nico { www.ni69.info }
Messages postés
18
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 octobre 2012

Salut;
Je sais utiliser le TMask Edit,

Mais je veut  que : !>A->A00-000-0-000;_
>A : Relit la base de donnée "Secteur";
>A00 : Relit la base de donnée "Sous_Secteur";
...
Merci !
Messages postés
18
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 octobre 2012

Y'a t'il pas une fonction !??
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
11
"relier" ne veut rien dire en soi.
Sois plus précis sur ce que tu veux faire, sinon on n'avancera pas

@+
Nico { www.ni69.info }
Messages postés
18
Date d'inscription
dimanche 25 janvier 2009
Statut
Membre
Dernière intervention
28 octobre 2012

Salut;
J'explique :
Je travail sous Delphi 5 avec une BD Paradox 7;
J'ai 04 Table dont :
-La Table1 appelée "Secteur" avec identifiant 'Code_Secteur" avec champ
 Alphanumérique sur 02 positions.
-La Table2 appelée "Chapitre" avec identifiant 'Code_Chapitre" avec champ
 Numérique sur 03 positions.
-La Table3 appelée "Commune" avec identifiant 'Code_Commune" avec champ
 Numérique sur 03 positions.
-La Table4 appelée "Opération" avec identifiant 'N° Opération" avec champ
 composé des identifiants de la Table1,2,3.
Ex : N° Opération avec composant TMask Edit : (!>L0-000-000;0;_)

Ce que je veut, c'est quand je saisi un N° d'opération, je veut être relier avec chacune des Tables (comme L0 affiche les information de la Table1...).
Merci !
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
11
Je n'ai toujours pas vraiment saisi où était ton problème !
A partir du moment où tu peux "relier" (j'ai toujours pas compris non plus exactement ce que tu faisais à cette étape là, mais bref passons), un champ à une table, tu peux relier un champ (donc ici le MaskEdit) à cinq tables, juste en utilisant la fonction Copy pour extraire les différentes parties de l'identifiant global...

var
   IDglobal: string;
   Code_Secteur, Code_SousSecteur : string;
   Code_Chapitre, Code_Article, Code_Commune : integer;

IDglobal := MaskEdit.Text;
Code_Secteur := IDglobal[1];
Code_SousSecteur := Copy(IDglobal, 3, 3);
Code_Chapitre := StrToInt(Copy(IDglobal, 7, 3));
Code_Article := StrToInt(IDglobal[11]);
Code_Commune := StrToInt(Copy(IDglobal, 13, 3));

@+
Nico { www.ni69.info }