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é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)
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)
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.
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
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