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 :

Lister les tables sauf les tables systèmes d'une base


Sujet :

Access

  1. #1
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut Lister les tables sauf les tables systèmes d'une base
    Je souhaite obtenir la liste des tables d'une base de données mais avec ma solution j'obtiens également les tables systèmes. Comment puis faire pour ne sélectionner que les tables crées par les utilisateurs ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set bdaccess = OpenDatabase(nombase)
     
     
    For Each table In bdaccess.TableDefs
     
           msgbox table.Name
     
    Next
    Merci d'avance

  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,

    Tu peux faire un test sur la propriété Attributes de l'objet TableDef. regarde la doc pour savoir dans ton contexte ...

    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 chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Tu rajoute a l'interieur de ta boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Not (Left(nom, 4) = "MSys") Then
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  4. #4
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bonjour,

    En faisant une rqt sur les objets systèmes avec comme critères la catégorie de l'objet correspondante aux tables :1...
    Mais cela suppose d'afficher les Objets système...

    Sinon en vba en posant une condition sur le nom de l'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(Table.Name, 4) = "Msys" Then...
    ...?

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  5. #5
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    PGZ pourriez vous me donner plus de précision sur la propriété Attributes

    La solution de tester le nom de la table sur les 4 premiers caractères marcherait sans problème mais je trouve que c'est un peu du bricolage, il n'y a vraiment aucune autre solution ???

  6. #6
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Citation Envoyé par Sytchev3
    La solution de tester le nom de la table sur les 4 premiers caractères marcherait sans problème mais je trouve que c'est un peu du bricolage, il n'y a vraiment aucune autre solution ???
    ...la rqt...

    Bricolage...pourquoi?

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  7. #7
    Responsable Access

    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
    Points : 14 526
    Points
    14 526
    Par défaut
    PGZ pourriez vous me donner plus de précision sur la propriété Attributes
    MSDN donne plein d'information aussi :
    http://support.microsoft.com/default...%3Bfr%3B210362

  8. #8
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    En admettant que je créer une table s'applelant MsysFILMS par exemple cela ne fonctionne plus il n'y a rien d'autre permettant de distinguer les tables utilisateurs des tables sytèmes ???

    Par exeple sur SQL Server je sais qu'un champ contient une valeur permettant de différencier les tables 'U' pour user et 'S' pour système

  9. #9
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Citation Envoyé par Sytchev3
    En admettant que je créer une table s'applelant MsysFILMS par exemple cela ne fonctionne plus il n'y a rien d'autre permettant de distinguer les tables utilisateurs des tables sytèmes ???
    C'était pour "pinailler"...mais cela reste une curieuse idée de nommer une table MsysFILMS...
    c'est vrai que c'est du bricolage...y'a des personnes sur ce forum bien plus autorisées que moi pour le dire aussi...alors...ne tergiversons pas...

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  10. #10
    Membre habitué Avatar de Sytchev3
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 433
    Points : 137
    Points
    137
    Par défaut
    C'est vrai que c'est un peu pinailler mais bon les utilisateurs finaux ne sont en général pas très finauds (je fais des jeux de mots sans le vouloir) c'est pourquoi je prends le maximum de paramètres en compte pour la gestion des erreurs. En tous cas merci d'avoir planché sur mon problème.

    Encore merci

Discussions similaires

  1. [MySQL] fonction vider une table sauf les id de 1 à 10
    Par doublemetre dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/03/2013, 19h01
  2. Réponses: 3
    Dernier message: 28/10/2011, 08h56
  3. Réponses: 5
    Dernier message: 29/12/2010, 08h12
  4. Réponses: 4
    Dernier message: 11/09/2006, 16h55

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