Recherche de toutes les tables (OK) mais il y a des données en trop !

Résolu
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 17 juin 2006 à 16:57
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 18 juin 2006 à 19:46
Salut à tous.

J'ai un code pour lister toutes les tables qui fonctionne 'à moitier' (ou trop).
Bref, je vous passe les déclarations et la grosse partie de code :

Dim MesTables As TableDef

For each MesTables in Db.TableDefs
comboNomsTables.AddItem MesTables.Name
Next MesTables

Voilà le résultat :

ListeProduit
MSysAccessStorage
MSysAccessXML
MSysACE s
MSysObjects
MSysQueries
MSysRelationships

ListeProduit, c'est normal, c'est ma table. Par contre le reste ????
Y'a t'il un moyen de ne pas les afficher ?
La solution serait de les supprimer avec RemoveItem mais je ne sais pas si ça s'affiche que sur mon PC ou si ces données s'affichent peu importe l'ordi.

Merci pour vos solutions.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !

8 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 juin 2006 à 17:22
Tu as un exemple dans cette source là
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 juin 2006 à 01:05
Re
Bon, voilà une affaire de réglée.
Pour faire plus joli et éliminer ce vilain label :

For each MesTables in Db.TableDefs
  If Not (qTable.Attributes And TableDefAttributeEnum.dbSystemObject) Then
     comboNomsTables.AddItem MesTables.Name
     i = i + 1
  End If
Next MesTables

J'ai déplacé  l'incrémentation de i car je pense qu'il compte le nombre de tables réellement intéressante ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 juin 2006 à 17:20
Salut
Ce sont les tables System d'organisation de la DB.
Pour les éliminer, il suffit de tester les valeurs de l'attibut Db.Attributes :
If (Db.Attributes And TableDefAttributeEnum.dbSystemObject) Then MsgBox "Table System"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 juin 2006 à 17:29
Salut Jack !

Ben en fait quand je tape Db. il ne me propose pas Attributes. (méthodes ou membre introuvable)
En 1er, c'est la méthode 'Close'

Une idée ?

Merci Jack

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
17 juin 2006 à 17:38
Salut,

Et si tu envoyais la requête "SHOW TABLES;" à ta base de données ?

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 juin 2006 à 17:39
Merci Jack, ta source m'a bien aidé (et ton code aussi). Voilà ce que j'ai fait

i = 0
Set qTable = Db.TableDefs(i)
For each MesTables in Db.TableDefs
If (qTable.Attributes And TableDefAttributeEnum.dbSystemObject) Then GoTo Saut
comboNomsTables.AddItem MesTables.Name
Saut:
i = i + 1
Next MesTables

Merci encore Jack !!

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 juin 2006 à 18:29
Bon, un p'tit coup de Pub :

http://www.vbfrance.com/code.aspx?ID=38162

Voilà, mon premier programme en VB6. C'est un trieur de doublons (d'une BDD Acces ou Tableur Excel).

Soyez indulgents, je n'ai l'habitude que de travailler avec VBA Excel.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
18 juin 2006 à 19:46
Salut Jack !

Bien vu, je n'ai pas pensé à faire l'inverse (utilisation du Not) et par la même occasion, tu m'enlèves le Saut.
Nickel, je le modifierai dès que je remet ma source à jour pour les autres export. (dans la semaine).

Merci encore Jack.

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
Rejoignez-nous