mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
17 juin 2006 à 16:57
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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 !
A voir également:
Recherche de toutes les tables (OK) mais il y a des données en trop !
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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 !
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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 !