Changer le nom d'un champ d'une table à partir du composant ttable

cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009 - 2 déc. 2004 à 17:13
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Derniè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.

Merci

11 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
3 déc. 2004 à 09:57
Hello,

Essaye ca :
Avec 0 le premier champ de la base.
Table.Fields.Fields[0].Name := 'Ton nom';

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Derniè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 :

TDest.open;
TDest.edit;
TDest.fields.Fields[4].Name := 'nomprenom';
TDest.post;
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
3 déc. 2004 à 10:40
Désole ce n'est pas name mais FieldName qu'il faut utiliser.

TDest.open;
TDest.edit;
TDest.fields.Fields[4].FieldName := 'nomprenom';
TDest.post;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Derniè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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
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).

var

StarIsThere: Boolean;

procedure TForm1.DBGrid1ColEnter(Sender: TObject);

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;

end;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Derniè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 ! :)
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
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.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
3 déc. 2004 à 11:15
J'ai regardé sur google, il semblerait que ce composant ne fonctionne qu'avec paradox et dbase de toutes facons...

J'aurai bien aimé trouver une solution mais c'est pas trop grave si je ne peux pas changer le nom de mon champ.

Merci pour l'aide :)
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
3 déc. 2004 à 11:17
Mais prenons le problème à l'envers.

Pourquoi souhaites tu changer le nom de ce champ en execution?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Derniè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.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
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!!!!

Désolé de ne pouvoir te depanner.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
Rejoignez-nous