Splitting Databases into Tables and Other Objects
When earlier versions of Access ran in a multiuser environment, it was imperative that you place the system's tables in one database and the rest of the system objects in another database. With Access 95 and the advent of replication, you could either split the tables from the other objects or use replication to deploy design changes without compromising live data. Access 2000, Access 2002, and Access 2003 take this a step further with the Access Data Project (ADP), in which Access stores tables, views, stored procedures, and data diagrams in a SQL Server database or the SQL Server 2000 Desktop Engine (formerly the Microsoft Database Engine, or MSDE). Access stores forms, reports, macros, and modules in the ADP file.Despite advances in the later versions of Access, splitting tables from other system objects is a very viable solution. For simplicity, I'll refer to the database containing the tables as the Table database and the database with the other objects as the Application database. Linking from the Application database to the Table database connects the two databases. This strategy enhances
- Maintainability
- Performance
- Scalability
Assume for a moment that you distribute your application as one MDB file. Your users work with your application for a week or two, writing down all problems and changes. It's time for you to make modifications to your application. Meanwhile, the users have entered live data into the application for two weeks. You make a copy of the database (which includes the live data) and make all the fixes and changes. This process takes a week. You're ready to install your copy of the database on the network. Now what? The users of the application have been adding, editing, and deleting records all week. Data replication, covered in Alison Balter's Mastering Access 2002 Enterprise Development , could help you with this problem, but replication isn't always feasible.Chapter 20, "Developing Multiuser and Enterprise Applications," cover some of these issues. Alison Balter's Mastering Access 2002 Enterprise Development covers client/server development techniques in extensive detail.Chapter 19, "Using External Data," covers the Database Splitter, as well as linked tables.Chapter 19, none of the chapters show databases split in the manner I recommend. This is because, until you learn all you need to know about splitting database objects, I don't think it's helpful to be working with a split sample database. From Chapter 19 on, however, each chapter offers some sample databases split according to the strategy recommended here.