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

IHM Discussion :

Liste des relations entre tables


Sujet :

IHM

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut Liste des relations entre tables
    Bonsoir,
    Dans une FAQ, Maxence Hubiche donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Relations.Delete "NomTableUnNomTableDeux"
    pour supprimer une relation entre tables.
    Comment lister ,tjrs par code, les relations existant dans une base ?
    J'ai en effet tenté de supprimer avec ce code des relations, mais je tombe sur l'erreur "n'existe pas" alors que les noms donnés sont bien ceux des tables concernés.
    Si on peut obtenir la liste des "NomTableUnNomTableDeux" on pourra alors éviter l'erreur.
    Merci de vos réponses
    Amitiés

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent 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 : 70
    Localisation : France

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

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

    La collection Relations peut être parcourue, et chaque item a une propriété Name qui peut être lue.

    Pour illustrer un exemple de fonction qui supprime toutes les relations de la base
    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
    22
    23
    24
    25
    26
    27
    Public Function fctSupprimerRelations() As Boolean
    Dim db As DAO.Database, iRel As Integer
     
    Set db = CurrentDb
    On Error GoTo SortieEnErreur
     
    iRel = db.Relations.Count
    If iRel > 0 Then
        For i = iRel To 1 Step -1
            db.Relations.Delete db.Relations(i - 1).Name
            DoEvents
        Next i
    End If
     
     
    fctSupprimerRelations = True
     
    Sortie:
        Set rel = Nothing
        Set db = Nothing
        Exit Function
     
    SortieEnErreur:
        fctSupprimerRelations = False
        GoTo Sortie
     
    End Function
    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Merci pgz,
    J'ai utilisé ton code comme suit pour obtenir les noms des relations, en passant par 'Refresh' une des deux propriétés avec 'Count' qui ne perturbe rien !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ...
    db.Relations.Refresh
    Debug.Print  db.Relations(i - 1).Name
    Next
    et ça fonctionne.

    Amitiés à tous

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Je suis allé un peu vite dans ma réponse : je suis bloqué par une erreur 3211 : table utilisée par une autre personne ou processus, alors qu'aucun code concernant cette table n'a été lancé !
    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.Close acTable, NomTable
    n'arrange rien.

    Je ne vois pas quoi faire.
    Amitiés

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent 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 : 70
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Je ne vois pas bien à quoi te sert, dans la circonstance, le .Refresh. Tu as essayé sans?

    COrdialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Tu as raison, le refresh ne sert à rien dans ce cas, et sa suppression ne change rien non plus au fait que la table est considérée comme utilisée, donc pas moyen de la fermer.
    C'est un DoEvents que je voulais mettre , mais comme je ne modiie pas les relations, il n'a aucun effet non plus !

    En fait, ce que je cherche amintenant, c'est de forcer la fermeture d'une table et ça n'a rien à voir avecla question primitive.
    Je m'excuse de ce "détournement".
    Amitiés à tous

  7. #7
    pgz
    pgz est déconnecté
    Expert éminent 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 : 70
    Localisation : France

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

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

    Tu es sûr de ne pas avoir un formulaire ouvert dont la source utilise au moins une table?

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Oui, il y a un form ouvert, celui de l'application, mais il n'utilise pas la table en question à l'ouverture, seulement sur action sur un bouton.
    Merci de ton aide
    Amitiés

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent 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 : 70
    Localisation : France

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

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

    Même si le formulaire est indépendant, il contient peut-être un contrôle dépendant, comme une ComboBox, par exemple.
    As-tu essayé d'exécuter la procédure formulaire fermé, pour voir?

    A bientôt,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 681
    Points : 214
    Points
    214
    Par défaut
    Bonjour,
    Bonne idée, mais je n'ai rien trouvé de semblable et ce matin cette erreur ne se produit plus !
    Va savoir d'où elle provenait ?
    Merci de vos aides
    Amicalement

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

Discussions similaires

  1. [vb6 access]liste des relation entre les tables
    Par bailamos dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/02/2009, 16h16
  2. [MySQL] Utilité des relations entre tables.
    Par Snooky68 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/11/2008, 09h48
  3. Réponses: 5
    Dernier message: 14/08/2008, 10h13
  4. Créer par code des relations entre tables d'une même base ?
    Par AndréPe dans le forum Modélisation
    Réponses: 2
    Dernier message: 21/11/2007, 18h27
  5. Récupération des relations entre tables
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h34

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