2009-08-17 7 views
1

Je me demande s'il est possible de charger du code à partir d'un fichier externe à utiliser dans l'accès ms. Ceci est important pour permettre un développement facile en utilisant le contrôle de version. Les fichiers .mdb sont impossibles à contrôler.fichier de code externe pour l'accès microsoft

+0

Juste le code VB? Mise en page des formes aussi? Structures de table? Contenu de la table? –

+0

Les tables sont séparées en une base de données MS SQL. mais les formulaires de version seraient un plus. – knittl

+0

Reportez-vous à la question "Comment utilisez-vous le contrôle de version avec Access development?" à http://stackoverflow.com/questions/187506/how-do-you-use-version-control-with-access-development –

Répondre

2

Voir How do you use version control with Access development? pour une excellente solution. J'ai légèrement modifié les scripts vb pour permettre l'exportation et l'importation de requêtes, ainsi que les autres types. J'utilise ces scripts avec Mercurial pour faire mon contrôle de version. En utilisant Access 2002, cela a été très fiable pour moi. J'ai restauré un changeset précédent et reconstruit le MDB et il a semblé fonctionner sans problèmes. Aussi, remarquablement peu de ressources requises. Un de mes projets a 12 changesets validés qui occupent un total de 16 Mo dans le dépôt, et le mdb de base est d'environ 10 Mo lui-même. Je recommande fortement cette approche.

+0

Pour clarifier, il s'agit essentiellement de la suggestion de Todd avec un lien ajouté à un «petit outil d'importation/exportation» existant – mwolfe02

1

Vous pouvez écrire un petit outil d'importation/exportation (dans l'application elle-même ou dans une MDB séparée) qui utilise les méthodes Application.SaveAsText et Application.LoadFromText. Ceux-ci sont non documentés, mais une fois que vous avez tapé le nom de la méthode dans l'éditeur, il vous demandera les types d'arguments, à savoir: ObjectType As AcObjectType, ObjectName As String, FileName As String.

+0

c'est un premier pas, mais ce n'est pas il existe un moyen d'exécuter le code vba externe? – knittl

+0

Je doute beaucoup qu'il y ait, désolé. –

+0

ok, je vais alors aller avec la solution que vous avez commentée – knittl

0

Vous pouvez prendre en compte la base de données de bibliothèque, c'est-à-dire la base MDB ou MDE externe dont le code peut être utilisé dans n'importe quel MDB/MDE. Si vous utilisez un MDE pour le frontal, il devra être recompilé chaque fois que la bibliothèque change, ce qui peut être très pénible si vous essayez d'utiliser un MDE de bibliothèque partagée. Cela peut être fait avec des références, ou par Application.Run, de la même façon, vous pouvez appeler des fonctions dans la base de données de l'assistant d'accès, par exemple, la boîte Zoom:

Application.Run("UTILITY.BuilderZoom", "MyForm", "MyControl", "Values") 

Voici comment vous pouvez lancer la « zone de zoom » que vous obtenez dans l'interface utilisateur Access lorsque vous appuyez sur Maj-F2 dans une zone de texte.

Ce qu'il fait est l'exécution de la fonction BuilderZoom dans la base de données UTILITY. Aucun chemin n'est spécifié car il se trouve dans le dossier Access. Si vous avez votre bibliothèque ailleurs, vous devez fournir le chemin vers Application.Run.

+0

cela ne résout pas le problème de ne pas être en mesure de diff/merge/code de la version d'une manière saine ... – knittl

+0

Non, mais cela signifie que vous pouvez centraliser votre code pour re -utiliser d'une manière qui le rend plus facile à gérer. –

Questions connexes