Est ce possible de liste les états access avec OpenSchema ?

Résolu
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014
-
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014
-
Bonjour

J'utilise le code ci dessous pour lister le nom des tables dans ma bases access, est ce possible de faire de même pour lister les états ?

  Set Enr = Base.OpenSchema(adSchemaTables)
   
    Do While Not Enr.EOF
        DoEvents
        If Enr!TABLE_TYPE = "TABLE" Then MsgBox Enr!TABLE_NAME
        Enr.MoveNext
    Loop
   
    Enr.Close

Merci d'avance pour les éléments que vous pourrez m'apporter.

9 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
Tu peux faire :

Dim oAccess As Access.Application
Dim oReport As Access.AccessObject
    Set oAccess = New Access.Application
    oAccess.Visible = False
    oAccess.AutomationSecurity = msoAutomationSecurityLow
    oAccess.OpenCurrentDatabase CHEMINRESEAU & CHEMINBASE, , "lema2006"
    For Each oReport In oAccess.CurrentProject.AllReports
        MsgBox oReport.Name
    Next oReport
    oAccess.Quit

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
Je crois que tu vas devoir faire joujou avec un objet Access.Application

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014

On m'a dit pareil avec la table pourtant je viens de réussir.

En faite c'est pas le access.application qui me gène, c'est parce que lorsque j'ai une autre base access ouverte, mon code ne marche plus, on dirais qu'il ne c'est pas qu'elle access prendre.

Quelqu'un a une solution.

Merci d'avance
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
ADO n'est pas fait que pour MsAccess...

les Etats Access lui sont propres, et OpenSchema propose des données que Access ne gère pas adSchemaActions / adSchemaFunctions ...

pour lister les etats Access, il semble que tu n'aies pas le choix...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014

ah ok.

Voila le code que j'utilise mais quand il y a un autre access d'ouverte avec une autre base ca marche plus.

Set Access = CreateObject("Access.Application")
Access.Visible = False
Access.OpenCurrentDatabase CHEMINRESEAU & CHEMINBASE, , "lema2006"


Dim dbs As Database
Set dbs = Access.CurrentDb
        
 Dim n As Integer
 Dim i As Integer
 Dim C As Container Set C dbs.Containers("Reports") 'ou Set C dbs.Containers(4)
  n = C.Documents.Count
  For i = 0 To n - 1
        MsgBox dbs.Containers("Reports")(i).Name
  Next i

J'ai vue qu'il y a aussi le Getobjet alors je sais pas trop ...
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014

Ca a l'air de marcher, même avec mon code, je comprend pas trop, je devais faire une mauvaise manip.

Cependant ton code est beaucoup plus propre que le mien.

Un grand merci.
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014

L'application est destiné a être utilisé toutes la journée.

Je risque de faire appel a ce code plusieurs fois.

Je ferme access a chaque fois ou je laisse ouvert access et je le ferme uniquement quand je ferme le prog VB ?
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
73
libre à toi de faire comme bon te semble ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
153
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
3 juillet 2014

La je l'ouvre au load et je le ferme au unload de la fenetre princiaple, ca à l'air de bien marcher.

Je vais faire un teste avec le runtime access, car c'est avec lui que je doit faire marcher tout ca, j'espère que ca marche de la même manière.