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

VBA Access Discussion :

Suppression de clé primaire en VBA


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut Suppression de clé primaire en VBA
    Bonjour,

    Depuis ma frontale, je veux mettre à jour ma dorsale, je procéde donc comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim oDB  As DAO.Database
     
        Set oDB = DBEngine.OpenDatabase(CurrentProject.Path & "\DU_dorsale.mdb", True)
     
        oDB.Execute "ALTER TABLE tbl_moyen ADD COLUMN jour_homme NUMERIC", dbFailOnError
        oDB.Execute "ALTER TABLE tbl_moyen ADD COLUMN cout currency", dbFailOnError
        oDB.Execute "CREATE TABLE tbl_touche_maj (touche_maj INTEGER)", dbFailOnError
     
        oDB.Close: Set oDB = Nothing
        MsgBox "Mise à jour réussie"
    Maintenant, j'aimerai supprimer la clé primaire d'une table, qui en fait m'empéche de faire certaines choses. il faut donc que je la supprime par le code, et là, je bloque

    Autre petite question, est t-il possible de changer la nature des liaisons entre deux tables, toujours en VBA ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Bonjour,
    Pour transformer une clé en SQL, regarde du côté de la clause CONSTRAINT.
    Pour la transformation en vba, il faut chercher dans la bibliothèque DAO, tu as tout ce qu'il faut (propriété Primary pour les index, objet relation, entre autres...)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut
    En fait, je veux supprimer juste le fait que ce soit une clé primaire, mais pas le champs !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 427
    Points : 520
    Points
    520
    Par défaut
    Normalement, la suppression d'un index n'entraine pas celle des champs le composant.

    Un p'tit bout de code qui supprime la clé primaire de la table "xxx"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim db As DAO.Database, ind As DAO.Index
        Set db = CurrentDb
            Set ind = db.TableDefs("xxx").Indexes("PrimaryKey")
            If ind.Unique And ind.Primary then
                db.TableDefs("xxx").Indexes.Delete (ind.Name)
            end if
            db.TableDefs("xxx").Indexes.Refresh
    Set ind = Nothing
    db.close
    Set db = Nothing

Discussions similaires

  1. Suppression de clé primaire
    Par nico27 dans le forum SQL
    Réponses: 6
    Dernier message: 18/07/2011, 17h34
  2. Réponses: 2
    Dernier message: 27/09/2010, 10h56
  3. suppression multiple, clé primaire multiple
    Par javaweb44 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/12/2006, 17h51
  4. suppression d'un enregistrement en VBA word
    Par accro-macro dans le forum VBA Word
    Réponses: 7
    Dernier message: 22/11/2006, 19h11
  5. Suppression de clef primaire
    Par castaka dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/07/2005, 10h41

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