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 :

comment supprimer une clé primaire d'une table ?


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut comment supprimer une clé primaire d'une table ?
    J'ai besoin d'un code qui me permet de supprimer ma clé primaire j'ai essayé cela :
    Alter table maTable drop Primary Key;
    mais ne veut pas la supprimer me dit erreur de syntaxe...
    ma clé primaire est de type numeroAuto
    j'ai essayer de changer son type par
    Alter table maTable Modify ClePrimaire Int;
    et là n'en plus il veut aps changer?! mais la il reconnait pas la fonction modify

    Aidez moi svp si vous avez une idée
    Mercid'avance

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    La question a se poser est : Pourquoi avoir besoin de supprimer une clé primaire (clé qui garantit la cohérence des données). Il y a forte chance qu'en supprimant ce champ, toutes tes données deviennent éronnées

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut
    Merci pour ta réponse tofalu

    Parceque j'ai une macro auotoexec, qui me transfere un fichier excel vers une table access
    aprés j'ajoute ce champ de clé primaire (toujours dans la macro)
    et vu que c'est une autoexec, je peu pas garder cette clé pour retransferer, sinon le transfere ne fait pas
    donc je suis obligé de l'effacer avant chaque transfere, et puis l'ajouter apres le transfere

    Vous me comprenez?

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    voila ce que j'utilise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE NomDeLaTable DROP CONSTRAINT PrimaryKey
    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut
    Merci,
    J'ai quand même une erreur :
    la contrainte CHECK "primarykey" n'existe pas
    vous savez pourquoi?

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour

    PrimaryKey est le nom de l'index clé primaire par défaut.
    Peut-être que le nom de la clé primaire est différent dans ta table.
    Dans la table, en mode conception, afficher les index pour vérifier le nom de la clé (Nom index).

    A+

  7. #7
    Débutant Avatar de torNAdE
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    255
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 255
    Points : 121
    Points
    121
    Par défaut
    ce que je sais que une clé primaire auto n'est plus supprimé sauf si tu modifie sa structure . (mode creation).
    Le club Sportif Sfaxien "Black and White Fighters" !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut
    merci bien,
    PrimaryKey est le meme index de ma clé primaire,
    peut etre il faut que je modifie le type de ma clé primaire avant de la modifier car maintenant elle est de type numeroAuto,vous savez comment je peux changer le type ( en VBA ou sql)?
    Merci d'avance

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut Index
    En fait ma clé primaire est généré à chaque dénbut de programme pour certaines raisons, et elle a un index différent à chaque fois de la forme Index_86278292_9BF6_4FCB
    et donc ce n'est pas possible de le savoir exactement pour l'appeler dans la requete
    Il faut que passe par le VB et comment?

  10. #10
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Voici un exemple en VBA (DAO) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Function RemovePrimKey(tableName) As String
    Dim db As DAO.Database, Idx As DAO.Index, tdef As DAO.TableDef
    Dim strIdxName As String
     
    On Error GoTo ERRH
    Set db = CurrentDb
    Set tdef = db.TableDefs(tableName)
    RemovePrimKey = ""
    For Each Idx In tdef.Indexes
        If Idx.Primary = True Then
           strIdxName = Idx.Name
           tdef.Indexes.Delete strIdxName
           Exit For
        End If
    Next
    Exit Function
     
    ERRH:
    RemovePrimKey = CStr(Err.Number) & " " & Err.Description
    End Function
    La fonction renvoie une chaîne vide ("") si aucun problème, une chaîne avec l'erreur dans le cas contraire.
    On lui passe en paramètre le nom de la table.

    A+

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 153
    Points : 89
    Points
    89
    Par défaut

    Merci beaucoup ça marche nickel, ça enleve la propriété de clé primaire à ma clé
    Merci à tous
    poliana

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/07/2009, 22h53
  2. Réponses: 5
    Dernier message: 18/03/2009, 12h11
  3. Réponses: 13
    Dernier message: 09/01/2008, 01h32
  4. Comment supprimer des liaisons excel/powerpoint via une macro?
    Par toma65 dans le forum VBA PowerPoint
    Réponses: 18
    Dernier message: 27/06/2007, 15h32
  5. Comment supprimer des fichiers lorsqu'on quitte une interface
    Par ZAYDOUN dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 23/04/2007, 23h21

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