2015-03-17 2 views
1

Nous avons un système interne qui est développé avec MS Access 2007. Il contient un formulaire de connexion qui utilise des tables externes utilisant des espaces de travail par défaut (DBEngine.Workspaces(0)).Comment vérifier les définitions de classes dans DBEngine.Workspaces (0)

Nous avons découvert quelle classe et quels membres sont utilisés mais ne pouvons pas déterminer quelle base de données est définie sous DBEngine.Workspaces(0) car le bouton de définition est grisé.

+0

Est-ce utile? 'DBEngine.Workspaces (0) .Databases (0) .Name' – HansUp

+0

@HansUp Désolé, probablement ce n'était pas clair .. Je voulais dire, je voudrais savoir comment je peux vérifier quelle base de données est utilisée pour DBEngine.Workspaces (0). Bases de données (0). Nous avons découvert que DBEngine.Workspaces (0) >> User >> UserName mais nous avons du mal à comprendre d'où vient la classe "User". – Chrissa

+0

Je ne comprends pas. 'DBEngine.Workspaces (0) .Databases (0) .Name' vous montrera le chemin complet du premier fichier de base de données qui est ouvert dans cet espace de travail. Si ce n'est pas ce que vous voulez, veuillez clarifier ce que vous voulez à la place. Avez-vous réellement essayé quelque chose comme ça? ... 'MsgBox DBEngine.Workspaces (0) .Databases (0) .Name' – HansUp

Répondre

0

DBEngine.Workspaces(0) est un objet DAO.Workspace.

DBEngine.Workspaces(0).Databases est la collection de bases de données ouverte dans cet espace de travail. Debug.Print DBEngine.Workspaces(0).Databases.Count vous dira combien de bases de données sont ouvertes dans cet espace de travail.

La première de ces bases de données est DBEngine.Workspaces(0).Databases(0). Et vous pouvez inspecter sa .Name propriété pour obtenir le chemin complet vers le fichier de base de données:

Debug.Print DBEngine.Workspaces(0).Databases(0).Name 

Dans un commentaire, vous avez également mentionné UserName. C'est une propriété de l'espace de travail, pas la base de données. Vous pouvez examiner cette propriété:

Debug.Print DBEngine.Workspaces(0).UserName 

Cependant, à moins que vous utilisez la sécurité au niveau utilisateur Access, DBEngine.Workspaces(0).UserName sera l'utilisateur par défaut, « admin ». Donc, dans cette situation, UserName n'est pas très utile.

+0

Merci pour l'explication. Je pourrais avoir plus d'idées de DAO. En fait, nous utilisons la sécurité au niveau de l'utilisateur et je pourrais obtenir le chemin complet du fichier de base de données avec la boîte de message. – Chrissa