views:

60

answers:

3

We are planning to redesign quite a huge MS Access application. Is there any way to work concurently on the same application or is it possible to merge two seperate instance of the same file (not the data, but the forms and code). Now Access contains the data, but in the future version MySQL will host the data and Access will be only the frontend (via ODBC)

A: 

2 (or more) developers working on one “Front end” is most likely going to end in tears at some point. Personally I have never worked on projects where we had a need for proper source control however I have been told that visual source safe works well with access so you might want to give that a shot.

Kevin Ross
Access has supported source code control for about 15 years. Worse your suggestion to have two users do development in the same front end is NOT possible. The solution here is to use Visual source safe. So just like two users can’t open up the same c++ source file and edit it at the same time, the solution here for c++ developers or ms-access developers is to use source code control. VSS with access allows each developer to check in/out parts of the application they are working on. The VSS add-in for access allows one to have a local build based on the source code library.
Albert D. Kallal
@Albert I did not suggest having two users in the same front end, I was infact trying to put the OP off that and point them towards VSS
Kevin Ross
+2  A: 

Microsoft proposes source control for Access developpers. I do not remember the exact references but I guess you can easily google it. I do not know how 'intelligent' is this source control when it comes to forms, queries and/or tables comparisons. We developped our own source control system in VBA, mainly based on the capacity to export/import Acces objects to text files (undocumented SaveAstext/LoadFromText methods of Application object). We also use a file comparison tool ("file compare tool") to complete our source control tool.

We have an "Objects" table, that lists all available objects in the client interface. From this list, we can export\compare:

  • Tables: we have our own tool that compares table structures and table data for our client-side tables, such as the table that holds connection strings to our different databases, etc.
  • Queries: "client-side" queries are kept in a "Queries" table. See previous
  • Macros: we have only an autoexec macro
  • Modules: we compare our modules as text files, via a text comparison tool
  • Forms: can be split in 2 files, a 'controls' text file, and a 'form module' text file, for further comparison.
Philippe Grondier
+2  A: 

Yes, you can have more then one developer working on the application at the same time.

In our software industry this is usually accomplished by using what’s called source code control system. Or often what we call a source code depositary.

Source code control systems simply allows more than one developer to work on the same set of documents, or in this case the same application of the same time.

How this works is that one developer can "check out" couple of reports, a couple of modules, fomrs etc. . Now he owns those modules, code, forms during that time period. No one else can check out and modify those parts that are "checked out". In fact in large software firms, you may have hundreds of developers working on the same project, and there’s often a Unwritten code of conduct and said that if you check something back into the master build, and it causes a bug, you don’t go home until you fix it! in other words don’t check in code into the application that’s going to cause it to break! "Breaking the build" as it called in the software industry is a NO NO in some software places. You do not want to be the one that does that!

So keep in mind that MS access support source code control. You have to install the developer extensions for access before you’ll see these additional options appear ( and of course it’s also assumed that you install the visual studio source code control system).

Here is a screens shot of access 2003, and notice the little check boxes beside some of the objects on the form: alt text

And here is another shot: alt text

Note once again the one with a checkmark is the form that I own. The little "lock" beside each object means that if I attempt to modify that object, it is locked and you actually get a prompt asking you if you want to "check out" and take ownership of this particular object (in this case a form).

As mention the source code control system applies to all objects. Here’s a screen shot of the query builder tab:

alt text

Again notice in the above how that the little additional checkmark or lock added to the access interface.

In the software industry it is standard fare to use a SCC system, and it is not anything different than expecting that a database devleoper has been taught some database normalization techniques.

The fact that the source code files are taken from the source code system and used to build a local .exe for each user, or in this case a local mdb file build is moot as that is only a physical view compared to that of a logical view.

Since access can export any object (forms, reports, code) etc. as a single text object, then this explains why Access being a single file can support multiple developers using source code control since the logical view is seperate objects and it moot that you have a local build. As long as access + VSS can view each object seperate, then the whole process is not really differnt then a c++ creating a SINGLE local .exe or single mdb from the source code system.

Albert D. Kallal
Hubidubi