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 :

savoir si une table est masquée ou pas


Sujet :

Access

  1. #1
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut savoir si une table est masquée ou pas
    bonjour,

    quel est la fonction qui permet de verifier par true ou false si une table est masqué?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub essai_Click()
    Dim tbl As TableDef
    For Each tbl In CurrentDb.TableDefs
    if ""table non masquer""
     tabley = tbl.Name
    end if           
    Next tbl
    End Sub
    cette fonction permet d'aller chercher les tables existantes dans la base de données.
    si la table est masqué tabley ne recevra pas le nom de la table.
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  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,

    L'info que tu cherches est dans la proprété Attributes de la table, qui est une combinaison de différentes constante. Celle qui t'intéresse est dbHiddenObject.
    Pour tester tu fais un 'ET' logique entre tbl.Attributes et dbHiddenObject. Si le résultat est non nul, la table est cachée;

    Bonne chance,

    pgz[/code]
    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 habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For Each tbl In CurrentDb.TableDefs
    masquer = tbl.Attributes And dbHiddenObject
    If masquer <> 0 Then
     myvalue = tbl.Name
     End If
    Next tbl
    est ce bien ainsi? car cela ne fonctionne pas il me retourne toujours zero.
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  4. #4
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim tbl As TableDef
    Dim db As Database
    Set db = CurrentDb()
     
    For Each tbl In db.TableDefs
     If Not ((tbl.Attributes And dbSystemObject) Or (tbl.Attributes And dbHiddenObject)) Then
     myvalue = tbl.Name
     End If
    Next tbl
    grace au mot donné en haut j'ai trouver la formule mais il ne se passe rien il considere toujours que c'est pas masqué ou un objet system. Pourtant j'ai bien dao et ado cochez dans les references
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  5. #5
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each tbl In db.TableDefs
       If tbl.Attributes = 0 Then
          myvalue = tbl.Name
          MsgBox "" & myvalue & " n'est pas une table caché ou une table        système"
     Else
        MsgBox "la table " & tbl.Name & " est une table caché ou une table système"
     End If
    Next tbl

  6. #6
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    merci pour ce code.

    cel amarche pour les tables systèmes mais pour les tables que j'ai pasqué moi meme cela reste à zéro
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  7. #7
    Membre expérimenté
    Avatar de Frank
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Avril 2002
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 095
    Points : 1 392
    Points
    1 392
    Par défaut
    zut, exact...

  8. #8
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    je n'ai pas trouver de solution donc j'ai fait une logique

    ou qd la table commence par MSys je ne prend pas et les tables que je masque moi meme je les nomme en commencant pas MSys
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par scully2501
    je n'ai pas trouver de solution donc j'ai fait une logique

    ou qd la table commence par MSys je ne prend pas et les tables que je masque moi meme je les nomme en commencant pas MSys
    C'est la solution la plus communément acceptée.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  10. #10
    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
    En effet, il semblerait qu'il y ait un bug.

    En effet, si un objet est masqué, sa propriété Attributes n'est pas combiné à dbHiddenObject qui est égale à 1.

    Or, si tu fais :

    db.TableDefs("LaTable").Attributes = 1
    tu t'aperceveras que ta table disparait même si sous Access tu affiches les objets masqués

    Etrange, Etrange

    En fait, il semblerat qu'une table hiddenobject soit une table temporaire, en fait rien à voir avec la propriété Masqué de la table

  11. #11
    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

  12. #12
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par Tofalu
    db.TableDefs("LaTable").Attributes = 1
    tu t'aperceveras que ta table disparait même si sous Access tu affiches les objets masqués
    tu pourrais pas utiliser les constantes plutôt ?
    db.TableDefs("LaTable").Attributes = dbHiddenObject
    Citation Envoyé par Tofalu
    Etrange, Etrange

    En fait, il semblerat qu'une table hiddenobject soit une table temporaire, en fait rien à voir avec la propriété Masqué de la table
    Pas une table temporaire...
    plutôt l'équivalent de 'très caché'(xlVeryHidden) pour les feuilles de calcul dans excel
    D'ailleurs, en faisant :
    db.TableDefs("LaTable").Attributes = x.Attributes Xor dbHiddenObject
    Elle réapparait

  13. #13
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    merci de vos reponses
    je vais testé cela dés que possible
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

  14. #14
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    masque = Application.GetHiddenAttribute(acTable, tbl.Name)
     If masque = False Then
     myvalue2 = tbl.Name
    else
    end if
    merci encore
    C'est tout un art de savoir programmer. Passant des heures à chercher une solution avec plaisir et joie.

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

Discussions similaires

  1. Savoir si une table est vérouillée
    Par fafabzh6 dans le forum VBA Access
    Réponses: 4
    Dernier message: 29/08/2007, 10h49
  2. Réponses: 2
    Dernier message: 04/08/2007, 08h27
  3. [C# / MS Access] savoir si une table est ouverte
    Par ager1912 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 05/06/2007, 07h22
  4. Savoir si une table est verouillé ?
    Par borislotte dans le forum Access
    Réponses: 4
    Dernier message: 26/09/2006, 13h49
  5. comment savoir si une fenetre est agrandi ou pas ?
    Par EssaiEncore dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 11h42

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