Lister tables, requetes ... d'une base mdb access [Résolu]

nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention - 10 mai 2010 à 10:43 - Dernière réponse : nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention
- 28 mai 2010 à 14:54
Bonjour à tous, je tente depuis un moment, de faire un programme permettant de pouvoir compter le nombre de "table", "queries", "macro" contenu dans mes bases de données,

je m'explique, j'aimerais pouvoir savoir qu'il y a dans X.mdb 9table, 6queries, 3 formulaire sans devoir l'ouvrir par office.

j'ai cherché la possibilité de le faire avec le fso mais en vin je tourne en rond.

si une ame charitable pouvais me dire quels sont peut etre les differents appel ou la maniere fe faire autrement.

D'avance Merci,
Nicolas
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 mai 2010 à 11:29
3
Merci
Salut
Pour voir ces objets, il te faut activer l'affichage des objets système sous Access :
Menu Options, onglet Affichage, case à cocher "Objets système"
Tu verras ainsi la table MSysObjects qu'il te suffira d'interroger.
http://cc.bingj.com/cache.aspx?q=msysobjects+type&d=4677859424535927&mkt=fr-FR&setlang=fr-FR&w=694a29c3,233001cc

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 mai 2010 à 11:32
3
Merci
Désolé, le lien merdouille.
Voici le contenu :
Requêtes:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)=5 ORDER BY MSysObjects.Name;

Formuliares:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)=-32768 ORDER BY MSysObjects.Name;

Tables:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;

États:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32764 ORDER BY MSysObjects.Name;

Modules:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32761 ORDER BY MSysObjects.Name;

Macros:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32766 ORDER BY MSysObjects.Name;

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Jack
Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 mai 2010 à 11:50
3
Merci
PS : Il faudra que, dans ta base de données, tu donnes accès en lecture de cette table à l'utilisateur : menu Outils, Sécurité, Autorisations d'accès
+ bien choisir le CursorType dans ton RecordSet, exemple :

    Dim maConn As ADODB.Connection
    Dim monRS As ADODB.Recordset
    Dim sSQL As String
    
    On Error GoTo 0
    
    Set maConn = New ADODB.Connection
    Set monRS = New ADODB.Recordset
    
    With maConn
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bd1.mdb;Persist Security Info=False"
        .Open
    End With
    
    sSQL = "Select * From MsysObjects"
    monRS.Open sSQL, maConn, adOpenStatic, adLockOptimistic
    
    With monRS
        If .RecordCount > 0 Then
            .MoveFirst
            Do While Not .EOF
                Debug.Print .Fields("Name").Value
                .MoveNext
            Loop
        End If
    End With
    
    
    On Error Resume Next
    monRS.Close
    maConn.Close
    Set monRS = Nothing
    Set maConn = Nothing

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

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Jack
nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention - 10 mai 2010 à 11:55
0
Merci
Merci beaucoup Jack, ton aide m'est très précieuse, je vais de ce pas essayer de mettre en pratique tout ceci et analyser pas a pas le code

si j'arrive a le faire fonctionner j'aurai mis plusieurs jours a savoir qu'est ce qui se trouve dans ma mdb, a la place de l'ouvrir manuellement.

Le vb en herbe te remercie
Commenter la réponse de nicollin7
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 mai 2010 à 12:23
0
Merci
De rien.
Afin que d'autres puisse trouver cette solution à cette question posée de temps en temps, je me suis permis de modifier le titre de ta question.
Commenter la réponse de cs_Jack
nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention - 17 mai 2010 à 16:02
0
Merci
pourrais je te demander, si tu voudrais bien me faire un exemple tout simple d'un des differents appel que tu m'a donné précédemment avec 1-2 petite notation, je n'arrive pas a les mettre en place. se serais très aimable de ta part.
D'avance merci,
Nicolas
Commenter la réponse de nicollin7
nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention - 17 mai 2010 à 16:03
0
Merci
PS: j'ai bien activer la lecture et la visibilité des table cachées dans le ms access
Commenter la réponse de nicollin7
nicollin7 7 Messages postés mercredi 4 juin 2008Date d'inscription 6 juillet 2010 Dernière intervention - 28 mai 2010 à 14:54
0
Merci
Bonjour, je voudrais savoir si on peux avoir les résultats sans devoir aller activer pour chaque base de donnée que je possède l'option pour voir la table msysaccessobject.

c'est pas tres pratique de devoir activer pour chaque base de donnée.
d'avance merci,
Nicolas
Commenter la réponse de nicollin7

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.