So in terms of Access Programming, I have over the years, built up tools and practices I use which help me develop better, faster, and more efficiently. Many of these tools and practices were developed specifically in order to solve recurring problems. Ok, so let’s examine how I go about doing this in Access.
Using OASIS and SVN for source control.
Early on, I simply made copies of files when I made them live and maybe renamed it, or put it in a dated folder. If I ever needed to go back and look at something I did, I would have to search through the files and it was a pain, so I never did it. Often my backup process would break and the customer would request one feature while I was developing another one and need feature 2 to be live before feature 1 and of course they wanted it as fast as possible. This would result in me updating a previous version of the database with a new feature, but it was quite easy to miss putting the new feature into the newer database I was still working on.
Source control was something I actually discovered while working on PHP code for web sites. I started using SVN (subversion) and set up my own server to do this and it was truly a God-send! What it allowed me to do was to make all the changes on my local development system, commit the work to the source control repository, and simply run a command on the server to pull in all the changes I had made and committed.
BUT, how does that work with Access? Source control works best with text files, it’s designed to work with programming “sources” hence “source” control. Access is a giant binary file and so does not work well directly with source control systems, however, if you could export all the different objects inside of Access to text files and then be able to import those text files to recreate the object or update the object as needed, then you could put those text files under source control. Each time you updated an Access object, you could save and export it to the text file.
I started off trying to roll my own system starting with some free code I found that someone had put out to do this. It would export everything in the Access database to text files and you could import everything back into the Access database. These scripts were a bit buggy though and so they didn’t always work quite right. Eventually I started looking for another solution to purchase. There are only a couple of tools out there to manage this process and I settled on one called OASIS SVN. It also handles GIT, which is a different source (version) control system.
The system still has it’s caveats but it has made it easy to compare different changes and lookup whether a system used to do what the client thought it did. It also facilitates me working with others on a database. Making changes to the same objects by different developers is problematic, but it works quite nicely if you are working on different, distinct areas of the database.
I will continue discussing my process and tools in future articles! Looking forward to hearing what you do.