Jun 24

Microsoft Access Database System Administration

Many people deploy Microsoft Access database applications and neglect to provide the system administration necessary to properly support and maintain them over time. This becomes critical as the data it contains grows and becomes mission critical. Often, when something goes wrong, IT “professionals” are brought in to discover basic system administration are not in place. Rather than blaming the people involved, the Microsoft Access technology is considered at fault. We can do better.

Here’s a response I recently provided related to this issue:

First, I hope you have a disaster recovery plan in place. You may want to read my paper for what we consider best practices:Creating a Backup and Disaster Recovery Plan for Microsoft Access Database Applications.

Second, Access/Jet databases need to be periodically compacted to minimize corruption and bloat, and for optimal performance. The back-end database with the data is what needs to be compacted. You can do that manually. We created a commercial program Total Visual Agent: that does it on a schedule with auditing and email notification if something goes wrong.

Third, if you are experiencing corruption after regular database maintenance, it’s often caused by a suspect connection/user who disconnects in an improper manner. That can be very difficult to detect and replicate. We have a commercial product, Total Access Admin, that monitors the people going in and out of an Access database, logs that activity, and flags the people who exit improperly. If it’s happening with the same person, there may be a hardware or network problem causing the corruption.

Finally, it may be possible that the corruption and performance problems are due to the front-end application. Bad code and techniques, corrupt objects, and other issues may be causing crashes and problems that lead to corruption. We address this in a few ways:

  1. We adopt, implement, and detect/fix deviations recommended by Total Access Analyzer: Microsoft Access Best Practices Techniques
  2. We implement global error handling that records crashes by users to text files so we have evidence of what failed. In addition to the procedure call stack, current procedure, error number and description, we also want the line number: http://www.fmsinc.com/free/NewTips/VBA/ErrorHandling/LineNumber.html This makes it significantly easier and quicker to reproduce and fix bugs.

Overall, it’s about having a solid and repeatable process and checklist in place that evolves over time as new experiences are encountered.

Jun 13

Small Business Disaster Recovery Planning Article

Here's an article by FMS President Luke Chung that was recently published on the Entrepreneurs' Organization, Washington DC web site discussing the need of small business owners to Create a Backup and Disaster Recovery Plan for Your IT System. Luke has been a member of EO for over a decade and previously served as the Washington DC chapter president.

The article covers our experiences working with people running small to medium sized organizations, and the challenges they face to address business process continuation issues. An overview of the basic steps are covered.

Overview

As someone running a small organization, it’s easy to be consumed by day-to-day needs and neglect the importance of disaster recovery. Not only is it awful to think about, it requires detailed planning and thought to implement properly. Over the years, we’ve seen organizations run into problems because of inadequate planning and testing, so here are some pointers we’ve learned.

Disasters Happen

Unfortunately, bad things happen. You may have business insurance to pay for replacing your hardware, but for most organizations the value is in the data. Customer lists and purchase histories, accounting, inventory, operational reports and processes, management decision making systems, and even simple Word and Excel files can be critical to the success of your organization. Making sure these are accessible in the event of an emergency is worth considering before a disaster strikes.

Disasters can be on many levels. Certainly, there’s the chance of your whole building burning down but the more common situation is hardware failure or human error. All hardware eventually dies and a hard disk containing critical corporate information could just fail. Similarly, someone could make a mistake and accidentally delete data or files that need to be recovered. It may not threaten the whole organization but could be expensive and time consuming to recover.

Full Article

For Microsoft Access applications in particular, read our related article:  Creating a Backup and Disaster Recovery Plan for Microsoft Access Database Applications 

May 31

Microsoft Access Database Scalability: How many users can it support?

Microsoft Access 2013What’s the Maximum Number of Microsoft Access Users?

There is a persistent myth that Microsoft Access Jet databases can only support 20 or so users. Here’s my response to a recent inquiry:

I flatly refute any suggestions that Microsoft Access users are limited to around 30. We’ve run many tests and have never seen that kind of degradation in performance. It is a myth from Access 2.0 days that was eliminated with Access 97 almost two decades ago.

A poorly designed Access database won’t support two users, but a well designed Access solution can support hundreds of users. Of course, what matters is the number of simultaneous users, and what they’re doing.

At Least 200 Simultaneous Microsoft Access Users on an Access/Jet Database

If everyone is just viewing data or entering data into a table, that takes very little work and a large number of people (well over 200) can be supported. People cannot type faster than what Access can handle. If users are all running massive reports and queries with data updates, that can still be done but performance would be an issue which applies to any technology, so testing and optimization would be necessary.

Migrate Back-End Access Database to Microsoft SQL Server for More Users

Microsoft SQL ServerIf the back-end database is in SQL Server rather than an Access/Jet database, the number of users can be practically unlimited if each user has their own front-end copy of the Access application. Performance issues still apply based on what they are doing. In some cases SQL Server is slower than Access, so it is important to understand the situation before thinking SQL Server is the answer.

All that said, any Access application that is distributed to others with shared data should be a split database design. Here are a few resources we’ve written:

Total Access StartupSimplify Support for All the Users of Your Access Databases

We offer a commercial product for enterprises, Total Access Startup, that helps with the distribution of databases to each user’s desktop, and launching it with the right version of Microsoft Access.

This allows you to centrally support a large number of Access users across your network and ensure everyone is using the latest version of your application. It also simplifies the migration from one version of Access to another.

Additional Discussions

MicrosoftThis topic was also discussed on the Microsoft Developer Network here:
Microsoft Access Database Scalability: How many users can it support?