msaccess-vcs-integration
[récupéré de cette page
========================
Synchronize your Microsoft Access Database definition with a version control system.
Included in the export/import:
Not included in the export/import:
This code is built and tested on Microsoft Access 2010/2013. It will probably work in earlier/later versions, but YMMV.
This README shows how to synchronize all application code objects from an Access application with a source control system such as Mercurial or Git. (The provided import/export module is agnostic about the actual source control system you use.)
For Access objects which are normally exported in UCS-2-little-endian encoding , the included module automatically converts to the source code to and from UTF-8 encoding during export/import; this is to ensure that you don't have trouble branching, merging, and comparing in tools such as Mercurial which treat any file containing 0x00 bytes as a non-diffable binary file.
The module will put the files in a folder called source within the same folder as your database file. The import expects the files to be in the same folder.
For the purposes of these instructions, assume your database is called Application.accdb.
VCS_Loader.bas into a new module in your database with that exact name.
VCS_Loader.bas file.loadVCS" into the immediate window followed by the directory where the other VCS files are located. If you don't specify a directory then it is assumed that the VCS code is contained in a folder called 'MSAccess-VCS', in the database directory.
e.g. loadVCS "C:\Users\MyUserAccount\Documents\Access-Proj\MSAccess-VCS\" - the trailing slash is required
or loadVCSVCS_ImportExport and change the constant INCLUDE_TABLES to list any lookup tables that function more as part of your application code than as client data. (For example, "Countries", "Colors", and things like that.)By default, no table data is exported. You must specify which tables' data to include in the export/import process by editing the INCLUDE_TABLES variable in the supplied module. For example you might have "Countries" or "Colors" tables that populate dropdown lists. You shouldn't include regular data tables containing actual records, because this data doesn't belong in version control.
In the demo\ folder there's a blank database that you can use with to provide with your source-controlled files, or to test the import; and a demo database with a sample of all the things that this project can import/export for trying the project out and testing any code changes made to the project.
Application.accdb and zip it to Application.zip using the Send to Compressed Folder command in Windows Explorer..accdb and .laccdb files, and then add and commit the zipped Access binary file Application.zip. Use a commit message like "Initial commit of [name] at version [number]."ExportAllSource". Wait for the Immediate window to say the export job is "Done."source folder. Use a commit message like "Initial commit of all source code for [name] at version [number]".ExportAllSource". Wait for the Immediate window to say the export job is "Done."ImportAllSource". Wait for the Immediate window to say the export job is "Done."Application.accdb and zip it to Application.zip (replacing the old copy) using the Send to Compressed Folder command in Windows Explorer. Commit the new Application.zip to your repository with a commit message like "Full application binary for release [number]".demo\blank.accdb).ImportProject". You will be presented with a warning telling you that all database objects are about to be deleted, allowing you to cancel the operation if you change you mind.VCS_ modules, they will not be automatically imported when any developer runs the ImportProject method. The code skips these files because it causes a conflict when trying to update a module that is actively being executed.Pull requests, issue reports etc welcomed.
https://github.com/timabell/msaccess-vcs-integration seems to currently be the most actively maintained branch, and Tim Abell will generally accept pull requests to keep the project alive but has minimal capacity to ensure correctness so please try and keep the quality as good as you can. Thanks! jwbrookes also has commit access to this repository so can review and accept pull requests.