IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

afficher les chemins dans un contrôle [AC-2007]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 19
    Points
    19
    Par défaut afficher les chemins dans un contrôle
    Bonjour,

    J'ai utilisé (y'a bien longtemps !) deux contrôles indépendants sur le formulaire
    principal d'une base de données qui me permettaient d'afficher les chemins pour:
    1 - l'application (base 'frontale')
    2 - les données (tables dans une base 'dorsale')

    La syntaxe VBA utilisée était la suivante:
    pour la frontale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="application:          =" & [CurrentDb].[Name]
    et pour la dorsale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="tables" & [DBEngine].[WorkSpaces](0)(0)(0).[connect]
    Ceci permettait à l'ouverture de la base d'avoir les chemins relatifs affichés en permanence et de vérifier qu'ils étaient corrects.
    (Utile si lors de changements de serveurs ou autre, le chemin des données n'étaient pas actualisés et toujours liées à une ancienne base dorsale).

    Ces syntaxes qui fonctionnent encore sous ACCESS 2002 (et 2003 ,) ne sont plus acceptées sous ACCESS 2007, jai le message
    Quel serait la syntaxe à utiliser pour retrouver mes infos sous ACCESS 2007 ?

    Merci

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonsoir,

    Pour commencer clarifions ta syntaxe:
    Il s'agit de la propriété Name d'un objet de base de données représentant la base de donnée courante, telle que le retourne la méthode Currentdb.

    Cette syntaxe devrait fonctionner en 2007.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBEngine.WorkSpaces(0)(0)(0).connect
    Il s'agit d'une syntaxe raccourcie de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBEngine.WorkSpaces(0).Databases(0).tabledefs(0).connect
    Ce qui signifie: la propriété connect du premier élément de la collection des tables de la 1ère base de données ouverte dans l'environnement de données de la session Access courante. Pour mieux situer DBEngine.Workspaces(0)(0) donnera ici le même résultat que Currentdb.

    Le problème est que la première table n'est pas forcément une table attachée et cela peut notamment une table système cachée.
    Pour rester dans ta logique, il vaudrait se caler sur une table donnée...
    DBEngine.WorkSpaces(0).Databases(0).tabledefs("MaTable").connect

    Au vu de ta syntaxe, je suppose que tu avais mis cela directement en expression d'un champ indépendant. Je n'ai jamais essayé mais en VBA, c'est pas bien compliqué...

    Quelque chose du genre, si tu as mis deux zones de texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    const cstTableTemoin as string ="Matable"
     
        With CurrentDb
            Me!txtApplication="application:          =" & .Name
            Me!txtTables ="tables"  &.TableDefs(cstTableTemoin).Connect
        End With

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    En effet, sur 2007,

    Currentdb n'est plus accessible directement dans le générateur d'expression.

    Il faut utiliser VBA pour créer une petite fonction qui retournera currentdb.name

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function currentdb_name() As String
    currentdb_name = CurrentDb.Name
    End Function
    Et donc dans tes contrôles, simplement :


  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour mout1234 et tofalu,

    Merci pour vos remarques et suggestions,

    1 - mout1234:

    j'ai en effet 2 champs indépendants, avec les syntaxes telles que j'ai indiqué, ce qui me donnait l'affichage permanent de l'appli et de tables (jusque la version 2003).
    J'ai essayé ta proposition de compléter le code avec un nom de table dans la "dorsale", ça n'a rien changé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[DBEngine].[WorkSpaces](0).[Database](0).[tabledefs]("tPassages").[connect]
    Ce qui semble confirmer que ACCESS 2007 est "différent" !

    2 - tofalu:

    seule chose que j'avais pu définir est le répertoire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[CurrentProject].[Path]
    donc ton code est ce que je cherche (manque celui des tables !)

    merci pour le tuyau, c'est exactement ce que je voulais, j'ai donc l'affichage du chemin de l'appli "frontale", ----
    ---- mais, si j'osais, aurais-tu l'info pour afficher aussi le chemin des tables (en "dorsale") ??

    Merci à tous deux
    Cordialement
    fred

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function tableLinked_name() As String
    Dim oTbl As DAO.TableDef
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
     
    For Each oTbl In oDb.TableDefs
        If oTbl.Connect <> "" Then
            tableLinked_name = oTbl.Connect
            Exit For
        End If
    Next
    End Function
    Je te laisse te débarrasser du ;Database= devant le résultat

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 19
    Points
    19
    Par défaut
    Bonjour Tofalu,

    Tour à fait çà !

    Elle est pas belle la vie ?
    Quand quelqu'un vous aide, on a envie d'aimer tout le monde !


    Grand et sincère merci !

    cordialement

    fred75

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher les fichiers dans une listbox sans le chemin complet
    Par thewarior dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/10/2014, 22h11
  2. Un ls récursif qui affiche les chemins absolus
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/07/2006, 17h04
  3. [C#] Comment afficher les données dans un DataGrid ?
    Par lepovre dans le forum ASP.NET
    Réponses: 7
    Dernier message: 05/07/2006, 17h52
  4. comment enlever les chemin dans l url
    Par chouchou93 dans le forum Struts 1
    Réponses: 5
    Dernier message: 13/06/2006, 15h52
  5. Comment afficher les toolTipText dans une zone de statut ?
    Par nicok01 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/01/2005, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo