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

VBA Access Discussion :

Lecture d'une variable depuis une autre base de données


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 54
    Points
    54
    Par défaut Lecture d'une variable depuis une autre base de données
    Bonjour,

    Est ce qu'il est possible de lire une variable déclaré comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Global Const DepotLe = "01/10/2013"
    depuis une autre base?

    Cordialement,

    El_Titof

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Je ne pense pas que ce soit possible simplement.

    Une solution simple serait de créer une table avec 1 champ et un enregistrement dans ta BD de référence et de linker cette table depuis la BD qui veut la lire.

    Accessoirement cette solution évitera d'avoir à changer le code de ta BD source à chaque changement de date.

    A+

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Et dans ta BD Soucre tu peux remplacer l'appel à la constante par une fonction, un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public function DepotLe() as date
       DepotLe=DFirst("DateDepot","TableDateDepot")
    end function
    Ceci te permets de ne pas avoir à changer le code partout où DepotLe est utilisée.

    A+

  4. #4
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 466
    Points : 550
    Points
    550
    Par défaut
    Bonsoir El_Titof,

    Votre question est intéressante et la réponse de Marot_R est pleine de bon sens et doit vraiment mériter votre attention. Néanmoins si vous ne pouvez pas modifier la base Access contenant le constante, voici une solution qui pourrait vous intéresser :

    1 J'ai créé une base contenant ce module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Compare Database
    Option Explicit
    Global Const DepotLe = "01/10/2013"
    Function Toto()
    MsgBox "Toto dans Module1."
     
    End Function
    Cette db s'appelle "Db1 avec Module et constante.mdb"
    C'est la base dans laquelle se trouve votre constante (et tout le reste...)



    2 J'ai créé ceci dans l'autre base à partir de laquelle vous voulez lire la constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Compare Database
    Option Explicit
     
    Function Export_Module_of_externalDB_to_Text()
    'Cette fonction exporte le module "Module1" d'une autre DB sous forme de texte.
    Dim A As Object
    Dim strBase As String
     
    strBase = "C:\Users\...\Documents\...\Db1 avec Module et constante.mdb"
     
    Set A = CreateObject("Access.Application")
    A.Visible = False
     
    A.OpenCurrentDatabase (strBase)
     
    A.DoCmd.OutputTo acOutputModule, "Module1", , "C:\Temp\test_Macro.txt", False, "", 0, acExportQualityPrint
    A.DoCmd.Quit
    Set A = Nothing
     
    End Function
    Cette fonction va créer un fichier texte contenant tout le code VBA du module.
    Exécutez la fonction et allez voir sur C:\Temp\

    3. Maintenant, il ne vous reste plus qu'à lire les premières lignes du fichier Texte pour y trouver la chaine de caractères "Global Const DepotLe =" et en extraire la valeur.

    Quelques contraintes :
    Je suppose que vous avez les droits d'accès à l'autre base
    Je suppose que vous connaissez le nom du module à extraire
    Je n'ai pas testé mais j'éviterais de faire tourner cette fonction quand l'autre base est en action. (On peut éventuellement verifier la présence d'un fichier .ldb)

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 54
    Points
    54
    Par défaut
    Bonjour PipoWIL

    Merci pour votre Proposition, je vais y regarder.

    PS: je vais ajouter aussi une alerte pour ce forum car je ne suis pas revenu pensant qu'il n'y avait pas de solution.

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Modifier une variable d'une classe depuis une autre classe
    Par Kezado dans le forum Général Java
    Réponses: 8
    Dernier message: 23/09/2010, 14h52
  3. Débutant, valeur d'une variable depuis une autre
    Par fabrice_84 dans le forum Général Python
    Réponses: 11
    Dernier message: 04/11/2009, 09h39
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Réponses: 5
    Dernier message: 08/09/2005, 20h33

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