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

Modélisation Discussion :

Connaitre le nom d'un relation


Sujet :

Modélisation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 45
    Par défaut Connaitre le nom d'un relation
    Bonjour,
    je n'arrive pas à afficher le nom d'une relation entre 2 tables.
    La relation a été crée sous access mais je voudrai la supprimer avec une requete SQL du style :
    ALTER TABLE 'xxx' DROP CONSTRAINT 'zzz'.

    Donc ma question est :
    Comment connaitre le nom d'une relation crée sous access ?

    Merci d'avance pour vos réponses.

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonjour,

    Je n'ai pas Access2007 pour regarder mais sous 2003, il existe une table système nommée "MSysRelationships"...

    Pour trouver le nom de la relation entre vos 2 tables, utiliser les colonnes "szObject" et "szReferencedObject" qui reprennent les noms de vos tables ou "szColumn" et "szReferencedColumn" qui reprennent le nom des colonnes jointes.

    Ainsi vous pourrez ressortir la colonne "szRelationship" correspondant au nom de la relation.

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    Personnellement, je préfère DAO plutôt que les tables systèmes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Function DeleteRelation(pTable1 As String, pTable2 As String) As Boolean
    Dim lDB As DAO.Database
    Dim lRel As DAO.Relation
    Set lDB = CurrentDb
    For Each lRel In lDB.Relations
        If (lRel.Table = pTable1 And lRel.ForeignTable = pTable2) Or (lRel.Table = pTable2 And lRel.ForeignTable = pTable1) Then
            lDB.Relations.Delete lRel.Name
            DeleteRelation = True
        End If
    Next
    Set lDB = Nothing
    End Function

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 45
    Par défaut
    Excélent, ça marche tres bien.

    Un autre soucis du même type, ce champs est indexé donc je ne peux pas le supprimer.
    J'ai regardé dans les tables :

    MSysObjects
    MSysAccessObjects
    MSysACEs
    MSysDb
    MSysQueries

    mais je n'ai pas vu les index.

    Donc, nouvelle colle :
    Comment trouver le nom de l'index afin de faire la manip :
    DROP INDEX yyyy ON xxxx

    Merci d'avance de m'éclairer.

  5. #5
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    Citation Envoyé par liviertlse Voir le message
    Comment trouver le nom de l'index afin de faire la manip :
    DROP INDEX yyyy ON xxxx
    Même principe sur la collection Indexes d'un objet TableDef :
    http://warin.developpez.com/access/d...=partie_4#L4.5

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 45
    Par défaut
    il existe pas une table système qui regroupe les index ???

  7. #7
    Expert éminent

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

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Citation Envoyé par liviertlse Voir le message
    il existe pas une table système qui regroupe les index ???
    D'une manière générale, il faut éviter de se baser sur les tables systèmes. Les modèles objets ADOX/ DAO encapsulent des méthodes compatibles, performantes, simples et sécurisées quelque soit la version du fichier de données.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 45
    Par défaut
    Merci pour vos réponses.
    Je ne connais pas DAO, je regarderai cela de plus prés quand j'aurai une minute.
    C'était par pure fénéantise que voulais savoir s'il n'y avait pas une table indexes.



    Merci encore et bon week-end.

Discussions similaires

  1. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 15h37
  2. connaitre le nom d'un pc distant à partir d'un TIdPeerThread
    Par raoulmania dans le forum Web & réseau
    Réponses: 2
    Dernier message: 27/07/2005, 16h46
  3. [C#] Connaitre le nom generé
    Par topolino dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/05/2004, 10h03
  4. Réponses: 2
    Dernier message: 29/10/2003, 12h05
  5. Connaitre le nom des imprimantes
    Par bastien dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/06/2002, 17h36

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