Changer le nom d'un champ d'une table à partir du composant ttable
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009
-
2 déc. 2004 à 17:13
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 2006
-
3 déc. 2004 à 13:15
Salut
j'aimerai savoir s'il est possible de changer le nom d'une colonne d'une table en passant par le composant ttable. Ca n'est pas possible en sql avec un base access et apparemment on peut le faire ainsi avec VB, alors je me suis dis qu'il y avait peut être l'équivalent en delphi.
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009 3 déc. 2004 à 10:29
salut
Ca semble être ce qu'il me faut mais ca n'a pas l'air de fonctionner... :(
Pdt l'execution je n'ai pas d'erreur mais quand j'ouvre ma base access après le traitement mon champ n'a pas changé de nom.
Voici mon bout de code :
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009 3 déc. 2004 à 10:42
Je viens de voir qu'on pouvait avoir :
TDest.fields.Fields[4].FieldName
J'essaye donc de changer le nom de mon champ avec cette instruction mais je n'arrive pas à l'utiliser, soit il me met 'impossible d'effectuer cette opération sur un ensemble de données fermées', soit 'impossible d'effectuer cette opération sur un ensemble de données ouvertes' :(
Quelqu'un sait-il comment faire ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 3 déc. 2004 à 10:52
Si tu veux que le nom de ton champ soit uniquement changer à l'affichage tu peux utiliser la propriété DisplayLabel. Regarde dans l'aide :
Le code suivant concatène un astérisque au libellé d'un champ lors de la saisie du contenu d'une colonne, et le supprime lorsqu'une autre colonne est sélectionnée. StarIsThere est un booléen qui prévient la suppression de caractères dans la colonne sélectionnée au départ (qui ne reçoit pas un événement OnColEnter).
begin
with DBGrid1.SelectedField do
DisplayLabel := '* ' + DisplayLabel;
StarIsThere = True;
end;
procedure TForm1.DBGrid1ColExit(Sender: TObject);
var
TheLabel: string;
begin
if StarIsThere then
begin
with DBGrid1.SelectedField do
begin
TheLabel := DisplayLabel;
Delete(TheLabel, 1, 2);
DisplayLabel := TheLabel;
end;
end;
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009 3 déc. 2004 à 11:04
En fait je n'utilise pas de dbgrid pour afficher ma base, je l'ouvre directement avec access et c'est à se niveau là que j'aimerai bien que mon champ ait changé de nom.
J'ai quand même essayé le displaylabel mais rien n'a changé quand j'ouvre ma base dans access.
Je crois que ca n'est pas forcément possible de changer le nom d'un champ d'une base access.
Tant pis et merci quand même de ton aide ! :)
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 3 déc. 2004 à 11:10
Ouais ca doit etre possible mais avec un composant additionnel.
Je me souviens avoir utiliser fut un temps un composant TRestructure pour les bases de données mais il était payant si ma mémoire était bonne.
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009 3 déc. 2004 à 12:07
En fait j'ai en entrée plusieurs tables que je souhaite entre autre fusionner. Je fais donc tout un tas de traitements pour déterminer la structure de ces tables afin de trouver les champs qui sont en commun dans toutes les tables.
Dans certaines tables il y a des champs civ, nom et prénom et dans d'autres ces infos sont regroupées dans un champ unique. Du coup de concatene ces champs quand ils sont séparés et je supprime les colonnes civ et prénom.
Je souhaiterai donc pouvoir renommer ma colonne nom en nomprenom.
j'avais pensé supprimer la colonne et en recréer une avec le nom que je veux mais ca me l'ajouterai à la fin de la table. Or quand la personne va ouvrir le fichier sous access après mes traitements dessus, elle ne vas pas forcement aimer que nomprenom se trouve après l'adresse, le cp et la ville...
De plus les fichiers pouvant être très gros, j'essaye de ne pas perdre trop de temps dans le traitement.
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 3 déc. 2004 à 13:15
Daccord je comprends mieux ton problème. Et effectivement a part récréer une nouvelle base et recopier les différentes données dedans je ne vois pas comment faire!!!!