6
votes

Références de fichiers relatifs

In avoir construit quelques fichiers de bibliothèque MDA que je fais ensuite référence à partir de ma dernière application d'accès (c'est-à-dire à l'aide d'outils -> références de l'IDE).

Y a-t-il une manière que ces références peuvent être rendues relatives plutôt que absolues. La raison pour laquelle je demande est de faciliter la configuration de l'ordinateur de l'utilisateur si les trois fichiers (applications principales et deux fichiers MDA) pourraient simplement être placés dans n'importe quel répertoire et travailler sans avoir à modifier les références. .

merci


0 commentaires

3 Réponses :


6
votes

Pour obtenir le chemin de fichier pour l'application d'accès xxx pré>

Ajoutez simplement les autres fichiers dans le même répertoire et obtenez-les par nom. I.e. P>

Dim filepath As String
filepath = CurrentProject.Path & "\name_of_file.mda"


7 commentaires

Malheureusement, mon code ne compilerait pas ... (Sauf si je suppose que je suppose que je suppose)


Ah, je comprends maintenant. Je pense que la contraction tardive pourrait être la voie à suivre avec cela.


Russ, pourriez-vous expliquer comment une contraction tardive fonctionnerait avec accès MDBS / MDES? Je ne suis pas au courant de la façon de faire cela.


Cet article l'explique assez bien - granite.ab.ca/access/latebinding.htm Cela fait longtemps que je faisais quelque chose d'accès, mais cela peut travailler pour l'OP, en fonction du type d'application qu'ils construisent


Russ, correct, j'ai écrit cet article. La reliure tardive fonctionne bien avec Excel, Word, Lotus Notes, Outlook, etc. Mais je ne suis pas au courant de la manière dont les MDB d'accès peuvent utiliser une liaison tardive à des fonctions de référence dans d'autres MDB d'accès.


@ Tony- Je suis corrigé. J'ai déjà utilisé la reliure tardive dans Excel VBA avant, mais pas dans l'accès. Je pensais que cela aurait été possible dans les versions d'Access 2000+ (IIRC, c'était la version où des modifications ont été apportées pour accéder à la VBA pour l'apporter en ligne avec d'autres Bureau VBA).


Russ, autant que je sache, ce n'est pas possible, mais parfois parfois, les gens peuvent faire un bricolage intéressant et résoudre des problèmes. Donc j'étais plutôt curieux. Pour les autres lisant ce fil, voir "Binding tardif dans Microsoft Access" page at granite.ab.ca /access/latebinding.htm



1
votes

Vous pouvez ajouter des références VBA via VBA elle-même.

Dim sFilename As String
sFilename = CurrentProject.Path & "\" & whatever.mda

Application.References.AddFromFile sFilename


1 commentaires

Si l'affiche originale distribue l'application en tant que MDE / ACCDE, cette solution ne fonctionnera pas comme vous ne pouvez pas mettre à jour les références dans une MDE / Accde.



7
votes

Pourquoi ne pas simplement placer les trois MDES dans le même dossier du système cible? L'accès devrait trouver les références de MDE juste bien.

ou utilisez-vous la logique complémentaire avec la table USYSREGINFO? Vous n'avez pas vraiment besoin de faire cela avec vos propres add-ins. Juste avec des add-ins de type développeur tels que la recherche et le remplacement de Rick Fisher.

Si cela ne fonctionne pas pour vous, dites-nous quels messages d'erreur ou quels symptômes.


3 commentaires

Fonctionne un régal. Merci. Je ne savais pas que cela essaierait de résoudre les références lui-même de telle manière.


BTW Vous pouvez également utiliser le programme UTILITIM Auto Fe gratuit UTILITINY at Autofeeupdater.com pour télécharger de nouvelles versions relativement sans douleur. Notez également que si votre Fe principal est un MDE et que vous apportez des modifications aux MDES référencés, vous devez également faire une nouvelle FE MDE.


@Tonytoews J'utilise Access 2007 pour travailler sur un projet Access 2003 (.MDB) avec une référence dans le même dossier (fichier .MDA avec un module) et il n'est pas automatiquement ajouté à mon projet. Est-ce que je manque quelque chose?