OVH Cloud OVH Cloud

Histoire de tables ...

3 réponses
Avatar
Kamel
Bonjour,

En vba pour acceder à mes tables j'execute la commande suivante:
For Each rs In db.TableDefs
MsgBox rs.Name
Next

Or, ca m'affiche d'autres tables que les miennes: MSysAccessObjects,
MSysACEs, MSysObjects, MSysQueries et MSysRelationships.

Pourriez vous me dire l'utilité de ces tables ? Sont elles par défaut créées
dans Access ?
Y a t il une commande pour avoir seulement mes tables créées ?

Merci !

Kamel

3 réponses

Avatar
Pierre CFI [mvp]
bonjour
ce sont des tables systémes, à ne pas toucher
For Each rs In db.TableDefs
If left(rs.name,4) <> "MSys" then MsgBox rs.Name
Next


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Kamel" a écrit dans le message de news:
Bonjour,

En vba pour acceder à mes tables j'execute la commande suivante:
For Each rs In db.TableDefs
MsgBox rs.Name
Next

Or, ca m'affiche d'autres tables que les miennes: MSysAccessObjects,
MSysACEs, MSysObjects, MSysQueries et MSysRelationships.

Pourriez vous me dire l'utilité de ces tables ? Sont elles par défaut créées
dans Access ?
Y a t il une commande pour avoir seulement mes tables créées ?

Merci !

Kamel




Avatar
Kamel
Merci Pierre ...

Mais je pensais qu'il y avait qd meme un moyen plus "propre" pour distinguer
les tables systèmes et les tables créées par l'utlisateur ... comme un type
de tables par exemple .. mais bon si un type de table existe il doit etre
lui aussi je pense enregistré dans une autre table (système) ... c'est le
serpent qui se mord la queue ... :-)

Je me casse peut etre un peu trop la tete ??


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
ce sont des tables systémes, à ne pas toucher
For Each rs In db.TableDefs
If left(rs.name,4) <> "MSys" then MsgBox rs.Name
Next


--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"Kamel" a écrit dans le message de
news:
Bonjour,

En vba pour acceder à mes tables j'execute la commande suivante:
For Each rs In db.TableDefs
MsgBox rs.Name
Next

Or, ca m'affiche d'autres tables que les miennes: MSysAccessObjects,
MSysACEs, MSysObjects, MSysQueries et MSysRelationships.

Pourriez vous me dire l'utilité de ces tables ? Sont elles par défaut
créées
dans Access ?
Y a t il une commande pour avoir seulement mes tables créées ?

Merci !

Kamel








Avatar
Daniel Carollo
Bonsoir Kamel!

Un facon un peu plus "propre" que celle proposee par Pierre consite a
verifier les attributs de la table.

Voyez l'aide en ligne sur MaTable.attributes pour les details, mais les deux
valeurs qui vous interessent particulierement dans ce cas sont
dbSystemObject et dbHiddenObject.

La methode de Pierre est une methode que l'on a tous utilisee pour du
travail "vite fait sur le coin de la table", mais pour quelque chose de plus
durable, il vaut mieux faire plus "propre", cela evite des surprises pour le
jour ou Microsoft decide de changer les noms des tables systemes, ou d'en
rajouter une qui n'adhere pas au conventions utilisees jusqu'alors...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"Kamel" wrote in message
news:
Merci Pierre ...

Mais je pensais qu'il y avait qd meme un moyen plus "propre" pour
distinguer

les tables systèmes et les tables créées par l'utlisateur ... comme un
type

de tables par exemple .. mais bon si un type de table existe il doit etre
lui aussi je pense enregistré dans une autre table (système) ... c'est le
serpent qui se mord la queue ... :-)

Je me casse peut etre un peu trop la tete ??