Bonjour,
Est ce qu'il est possible de lire une variable déclaré comme
depuis une autre base?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Global Const DepotLe = "01/10/2013"
Cordialement,
El_Titof
Bonjour,
Est ce qu'il est possible de lire une variable déclaré comme
depuis une autre base?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Global Const DepotLe = "01/10/2013"
Cordialement,
El_Titof
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+
Et dans ta BD Soucre tu peux remplacer l'appel à la constante par une fonction, un truc du genre :
Ceci te permets de ne pas avoir à changer le code partout où DepotLe est utilisée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public function DepotLe() as date DepotLe=DFirst("DateDepot","TableDateDepot") end function
A+
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 :Cette db s'appelle "Db1 avec Module et constante.mdb"
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
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 :Cette fonction va créer un fichier texte contenant tout le code VBA du module.
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
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)
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager