Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011
-
5 juil. 2011 à 18:27
Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011
-
8 juil. 2011 à 15:54
Bonsoir à tous.
Pour faire simple, mon souci est que je n'arrive pas à modifier un champ d'une table Access 2003.
J'ai tout d'abord essayé de modifier ce champ en SQL mais la commande ALTER TABLE n'est pas entièrement supporté.
En fouinant sur le net j'ai pu voir que certains avaient réussit à résoudre ce problème avec ADO et DAO (composant microsoft). Je me suis inspiré de ces travaux pour tenter la même chose mais avec BDE (inclus avec BCB6 ):
//Condition pour faire la mise à jour
if (NomChamp_actuel != edt_NomChamp_nouveau->Text)
{
//ouverture des sessions, de la base et de la table
Session_bdd->Open();
Base_de_donnee->Open();
table_resultats->Active = true;
//Ecriture du nouveau nom saisie par l'operateur dans la table Resultat
table_resultats->Fields->FindField(NomChamp_actuel)->FieldName = edt_NomChamp_nouveau->Text;
//ouverture des sessions, de la base et de la table
tb_resultats->Active = false;
Base_de_donnee->Close();
Session_bdd->Close();
}
Avec ce bout de code j'obtiens une erreur me disant que la modification n'est pas possible sur une table ouverte.
Normal me direz vous, mais du coup je ne sais pas comment m'y prendre pour faire la modification sur la table fermé.
Merci par avance pour vos idées.
Rionirind
Messages postés26Date d'inscriptionmercredi 5 décembre 2007StatutMembreDernière intervention 8 juillet 2011 8 juil. 2011 à 15:54
Bon ben il semblerait que cela pas encore possible.
J'ai choisi une solution "lourde" en sql qui permet de donner l'impression d'un renommage :
- Copie de la table1 vers table2, (copie de la table entière par simple précaution)
- Suppression dans la table1 de tous les champs à partir de celui à renommer,
- Insertion du champ dans table1 avec le nom de champ voulu,
- Insertion des champs de la table2 dans la table1 après celui à renommer,
- Copie des données de la table2 vers la table1,
- Suppression la table2.
Mais ça ne me conviendra pas sur le long terme, car plus il y aura de données, plus cette procédure sera longue...
Donc je reste ouvert à vos suggestions.