IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

[modification de la clé primaire - changement de type et de valeur]


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Par défaut [modification de la clé primaire - changement de type et de valeur]
    Bonjour,

    j'ai une base qui a été faite par quelqu'un et qui a mis pour une table de 150 enregistrements (souvent accédée et lue) un champ texte de 50 comme clé primaire.

    je pense que ça peut ralentir énormément les performances : je souhaite donc ajouter une clé de type NuméroAuto à la place de l'ancienne texte qui sera un champ comme un autre. Ca, ça ne pose pas de problème.

    Evidemment, les données enregistrées de les autres tables utilisant cette clé primaire texte doivent être modifiées.

    Ma question : quelle est la meilleur façon de mettre à jour ces champs dans les autres tables?

    Quelqu'un aurait-il une petite idée SVP?

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour

    Je ferais de la façon suivante :
    1. adjonction de la clé dans la table principale, en conservant le champ texte comme champ banal.
    2. Adjonction d'un champ numérique à chaque table secondaire dotée d'une clé externe vers la table principale.
    3. rédaction d'une procédure VBA qui en DAO scrute chaque table secondaire. Pour chaque enregistrement, lecture de l'ancienne clé externe; la valeur lue permet d'entrer dans la table principale à l'enregistrement correspondant et d'en extraire la valeur de clé numauto ( par un DLookUp ), écriture de cette valeur dans le champ clé externe numérique de la table secondaire.
    4. Suppression des anciennes clés externes texte des tables seondaires et redéfinition des relations entre tables.

    Bon courage,

    pgz

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Par défaut
    Fastidieux mais effectivement je crois que c'est la seule solution.
    Merci beaucoup pour ta réponse.
    +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/02/2006, 11h31
  2. PB changement de type d'un champ ds INTERBASE
    Par vanoou dans le forum InterBase
    Réponses: 3
    Dernier message: 03/01/2005, 17h24
  3. Changement de type
    Par spoutyoyo dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/08/2004, 15h39
  4. [CR]Changement de type de base de donnée
    Par nabil dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/04/2004, 22h42
  5. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo