Lister tout les objet d'une base access?
thedavix
Messages postés
466
Statut
Membre
-
blackbird -
blackbird -
Salut a vous,
J'ai une question,
J'aimerai faire un bouton qui me sorte tous les noms de mes tables, requetes, formulaire, états, modules, macros et qu'il me copie les nom dans une table..
Je sais que ca dois se faire avec la table MSysObject et une requette SQL mais j'arrive pas..
Quelqu'un me donnerai un peti cou de pousse ?
" celui qui comprend... est perdu..." =;o)
J'ai une question,
J'aimerai faire un bouton qui me sorte tous les noms de mes tables, requetes, formulaire, états, modules, macros et qu'il me copie les nom dans une table..
Je sais que ca dois se faire avec la table MSysObject et une requette SQL mais j'arrive pas..
Quelqu'un me donnerai un peti cou de pousse ?
" celui qui comprend... est perdu..." =;o)
A voir également:
- Lister tout les objet d'une base access?
- Base de registre - Guide
- Lister les disques cmd - Guide
- Créer une liste déroulante excel - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Acer quick access ✓ - Forum PC portable
4 réponses
Salut,
ben oui qu'on peut faire...
en SQL, j'ai jamais fait, mais en VB oui ! (mais pas avec MsysObject.)
Ma méthode (avec laquelle je suis d'accord) :
Dim Bds As Database
Dim i as integer
Dim l as integer
Dim Str1 as string
Set Bds = CurrentDb
l = Bds.TableDefs.Count
l = l - 1
For i = 0 To l
Str1 = Bds.TableDefs(i).Name
' Pas les tables 'systeme'
If Left$(Str1, 4) <> "Msys" Then
MsgBox (Str1)
End If
Next
Ca te va ? C'est uniquement pour les tables, sinon tu as querydefs, forms, indexes...
Regarde l'aide ACCESS pour les 'Collections'
Pour les ajouts dans une table, je peux faire aussi, mais faut vraiment demander gentiment !
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
ben oui qu'on peut faire...
en SQL, j'ai jamais fait, mais en VB oui ! (mais pas avec MsysObject.)
Ma méthode (avec laquelle je suis d'accord) :
Dim Bds As Database
Dim i as integer
Dim l as integer
Dim Str1 as string
Set Bds = CurrentDb
l = Bds.TableDefs.Count
l = l - 1
For i = 0 To l
Str1 = Bds.TableDefs(i).Name
' Pas les tables 'systeme'
If Left$(Str1, 4) <> "Msys" Then
MsgBox (Str1)
End If
Next
Ca te va ? C'est uniquement pour les tables, sinon tu as querydefs, forms, indexes...
Regarde l'aide ACCESS pour les 'Collections'
Pour les ajouts dans une table, je peux faire aussi, mais faut vraiment demander gentiment !
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
bah, je comprends pas.
la requête que je t'ai donnée hier elle marche! je l'ai essayée chez moi avant de te la donner...
:-(
kinder.surprise,
le maton du matou
la requête que je t'ai donnée hier elle marche! je l'ai essayée chez moi avant de te la donner...
:-(
kinder.surprise,
le maton du matou
Salut kinder ca va?
Je viens de voir que vous vous déchiriez avec ca, mais c'est que ce massage j'ai l'ai posté qque jours avant l'autre ou tu m'a tout expliqué..
Non t'en fait pas je suis pas quand meme fou, je vais pas poster 2x la meme chose surtout si ca marchait trop bien ce que tu m'avais donné
merci encore
" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
Je viens de voir que vous vous déchiriez avec ca, mais c'est que ce massage j'ai l'ai posté qque jours avant l'autre ou tu m'a tout expliqué..
Non t'en fait pas je suis pas quand meme fou, je vais pas poster 2x la meme chose surtout si ca marchait trop bien ce que tu m'avais donné
merci encore
" Le vrai savant n'est pas celui qui apprend,
mais celui qui comprend... " =;o)
Tu ne connais pas la boucle FOR EACH ?? Ouaaa, essaie, tu vas voir, ça va te changer la vie !!
Essaie ça :
For Each Obj in Currentdb.TableDefs
If Ucase(Left(Obj.Name,4) <> "MSYS" Then MsgBox Obj.Name
Next
Maintenant, tu comptes le nombre de lignes !! Sans oublier les boucles imbriquées, mon petit père !! Hop là !! ;-))
Wild and Free
on s'connait ?! :-)
nan, mais c'est vrai que je l'utilise pas souvent le FOR EACH, c'est paske je fais de la recopie de code et que mon code d'origine comprend bien plus de lignes que ça.
et pis entre parenthèses, j'ai pas plus de boucles imbriquées que toi (et toc ! ;->>)
A+ Blux "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Pi tu crois que tu as plus de boucle imbriquées que moi ? Tu dois être sacrément frisé !! ;-) Plus sérieusement, va sur mon site : http://domlevinfo.free.fr/ et tu me diras si tu fait plus de boucles imbriquées !! Héhé, c'est pépé qui koze !!
Sinon, un petit cadeau qui peut servir sous access :
'Analyse des objets d'une base---------------------------------------------------------------------
Sub AnalyseObjets()
Dim A, B
For Each A In Application.CurrentDb.Containers
For Each B In A.Documents
Debug.Print A.Name, B.Name
Next
Next
End Sub
'Analyse des barres de commandes-------------------------------------------------------------------
Sub AnalyseBarresMenus()
Dim A, B
For Each A In Application.CommandBars
For Each B In A.Controls
Debug.Print A.Name, B.Caption
Next
Next
End Sub
-----Remplace les debug.print par ce que tu veux (propriétés, méthodes, que sais-je) et hop là, maîtrise des objets et barres de commandes !! Tu peux imaginer pleins de trucs !!
J'espère que ça te plaît et sera utile... ;-)
Wild and Free
'Création dynamique de table-----------------------------------------------------------------------
Sub CreationDeTable()
Dim LaBase As Database
Dim TableExp As TableDef
Set LaBase = CurrentDb
Set TableExp = LaBase.createtabledef("temp")
With TableExp
.Fields.Append .CreateField("ex", dbtext, 50)
End With
LaBase.TableDefs.Append TableExp
End Sub
----- Pouf pouf, maintenant, y'a plus qu'a associer ça à l'événement "click" d'un bouton....
;-)
Wild and Free
Wild and Free