Modif Nom Table dans BDD Access

Résolu
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 - 18 janv. 2005 à 11:46
belaid52 Messages postés 68 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 23 juin 2011 - 25 janv. 2008 à 07:11
Bonjour tout le monde,
Donc voilà mon problème ! J'utilise une base de données MS Access qui comporte plusieurs tables. Pour ce faire j'utilise l'ODBC et j'ajoute ma Base de données en question.

J'utilise le composant TTable pour appeler ma base de données Access et travailler avec.
(J'utilise Delphi 4)

Table1.DatabaseName := 'BDDACCESS1';

Ma question est de savoir comment on peut renommer le nom des tables présentent dans la base de données ?

Je vous remercie d'avance pour votre aide !

5 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
18 janv. 2005 à 15:03
Désole Cupra j'ai lu un peu vite ton message sinon avec un TTable voici une fonction que j'ai testé et qui fonctionne :

On copie la Table sous un nouveau nom puis on la detruit.

Si ta table est pas trop volumineuse sa devrait aller.

TableName : Nom de la table

DatabaseRef : Database de connexion à access

DbGridTmp : DbGrid ou tu souhaites afficher les infos

TableTmp : Nouvelle table

TableRef : Table de reference qui sera detruite

DataSourceTmp : Datasource connecté derriere le TableTmp

ErrorMessage : Renvoi les erreurs eventuelles



function RenameTableAccess(TableName : ShortString; DataBaseRef : TDataBase;

DbGridTmp : TDbGrid; var TableTmp,TableRef : TTable;

var DataSourceTmp : TDataSource; out ErrorMessage : ShortString) : Boolean;

begin

Result := True;



Try

{Création de la table}

TableTmp := TTable.Create(nil);

TableTmp.DatabaseName := DataBaseRef.DatabaseName;

TableTmp.TableName := TableName;

TableTmp.SessionName := DataBaseRef.Session.SessionName;

TableTmp.FieldDefs.Add('I_Clef',FtInteger,0,False);

TableTmp.IndexDefs.Add('','I_Clef',[IxPrimary,IxUnique]);

TableTmp.CreateTable;

{Sauvegarde de la table originale}

TableTmp.BatchMove(TableRef,batCopy);

{Connection à la table}

DataSourceTmp := TDataSource.Create(nil);

Datasource1.DataSet := TableTmp;

DbGridTmp.Datasource := DataSourceTmp;

TableTmp.Active := True;

{Destruction de la base de reference}

TableRef.Active := False;

TableRef.DeleteTable;

except



{On récupère l'erreur pour la restituer à l'utilisateur}

on E:Exception do

begin

Result := False;



If E.Message = '' then
E.Message := 'ECreationTableTampon : Erreur à la création de la base
tampon.';



ErrorMessage := E.Message;

end;

end;

end;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
3
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
18 janv. 2005 à 14:39
Hello Cupracing,



Tu as essayer en sql RENAME TABLE Ancien_Nom TO Nouveau_Nom


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cupracing Messages postés 27 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 24 février 2005 1
18 janv. 2005 à 16:49
mille merci encore une fois pour ta réponse jmp77 ... ça marche !!!
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
19 janv. 2005 à 09:20
C'est cool heureux d'avoir pu te depanner.

Bonne prog,
JMP77.

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

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

Posez votre question
belaid52 Messages postés 68 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 23 juin 2011 1
25 janv. 2008 à 07:11
Salut,
comment peut on bloquer un enregistrement d'une table pendant sa maj pour que d'autres utilisateurs n'accedent pas a cet enregistrement?
merci
0