|
||
|
Strategic Overview Microsoft Access within an Organization's Database Strategy How many simultaneous Microsoft Access users? Blaming Microsoft Access instead of the Developer Best Practices Taking Over Legacy MS Access Databases
Table Design Query Design Form Design Subform Reference to Control Rather than Field Report Design Suppressing Page Headers and Footers on the First Page of Your Report Annual Monthly Crosstab Columns Design Environment Adding Buttons to the Quick Access Toolbar Collapsing the Office Ribbon for more space VBA Programming Avoiding Exits in the Body of a Procedure Source Code Library VBA Error Handling Error Handling and Debugging Techniques Error Number and Description Reference Performance Tips Deployment Missing Package & Deployment Wizard System Admin Database Corruption Cloud and Azure Deploying MS Access Linked to SQL Azure Additional Resources MS Access Developer Programming Connect with Us
|
We can argue over the fact that there are million dollar Access applications and $20,000 .NET applications, but that misses the point. These numbers show order of magnitude for a large organization, and what they generally spend for solutions on those platforms. It is worthy to note that solutions created for the first three platforms (Excel and simple Access applications) are often created by non-IT professionals. Managers, analysts, and administrators create these solutions without IT budgets or guidance. It's simply part of their job. Most of these solutions would rarely make economic sense if IT staff fulfilled them, nor would they be able to create them in a timely manner. That said, many applications created by non-IT professionals are not maintainable and suffer from poor design. Once you get into workgroup applications, defined budgets, design processes and more structured development efforts occur, and people specializing in application development get involved. But even at this point, costs vary widely based on the platform selected. Quantity of Database SolutionsAs illustrated in the Database Pyramid, there are a lot more small databases than large ones. Here's an estimate of the relative number of database solutions by platform in a large organization:
Quantity vs. CostWhen you compare quantity and cost, there's an exponential relationship between the number of solutions and average cost. Here's the comparison on a logarithmic scale:
Not surprisingly, as the cost of each implementation increases, the number of solutions decreases. It's the CIO/CTO's responsibility to survey the entire spectrum of database challenges facing the organization and deploy the appropriate technology to meet them given limited resources and time. Advantages of Microsoft AccessMS Access is the most popular database program because non-IT professionals can cost-effectively solve a wide range of database problems with it, and professional developers can create very sophisticated multi-user solutions. Tremendous ROIIf it can be solved in Access, it's probably cheaper than alternative solutions which maximizes ROI Rapid Application DevelopmentThe Access development environment lets you create results fast. Access solutions often require significantly less code than alternatives. It's a great platform for prototyping. Integrates with Microsoft OfficeAccess is part of Office and integrates with the most popular interface users use: Office. Enabling users to view data and exporting it into Excel or Word (or users simply pasting it themselves) is extremely powerful to knowledge workers. Great for Data Entry – Windows Still Beats WebSomehow web users are trained to accept behavior that would cause howls in Windows applications. For instance, changing the quantity and pressing [Update] to refresh total sales. Access easily (cheaply) supports this, copying and pasting records, displaying multiple one-to-many relationships, and other basic features (e.g. spell checking) that provide a much friendlier and richer data entry experience than Web solutions. Interfaces with Lots of Database FormatsAccess links to all sorts of data sources from legacy DOS databases like dBase, Paradox, and FoxPro, to ODBC data from SQL Server, Oracle, DB2, etc. Powerful Query DesignerThe Query Designer lets people create sophisticated multi-table queries visually and graphically without having to learn SQL. Access queries can also reference VBA functions and user defined functions directly in their queries for very sophisticated analysis and updates. Advanced users who know SQL, can also write SQL queries directly. Excellent Report GeneratorThe Access report generator is second to none. Sub-reports are extremely useful for showing multi-table relationships. Combine this with Access' ability to link to many data sources and you have a great report generator. Many desktop database applications have significant report generation features. Web reports still don't compare or print on paper properly, even with a lot more effort. Approachable Development EnvironmentThe VBA IDE is the same as VB and offers a very productive development environment. You can even edit and save code while debugging which is a real time saver. Access Solves Many Solutions with Less Code than AlternativesThe less code required for a solution, the better. It's easier to create and easier to maintain. N-tier solutions are definitely not RAD, and not beneficial if you never need to share your data. Ideal for Network SolutionsAccess is designed for file server solutions on local area networks. Excellent PerformanceFile server based applications like Access can often outperform client-server applications which have much more overhead (of course, it also does more). In fact, with today's hardware, not only can an index or table be brought into memory but the whole database can reside in memory. Handles Non-Connected SituationsAccess supports laptops and disconnected solutions that can't be handled by web applications. Access databases can also be easily emailed to others. In limited low data collision situations, Access replication is appropriate for remote database sharing. Limitations of MS AccessOf course, MS Access has limitations that prevent its use in some cases. Not Ideal for Web SolutionsMicrosoft Access simply isn't designed to create web sites. The Data Access Pages are of limited use in Intranets but not Internets. The underlying Jet Engine is also not useful except when the number of simultaneous users is low. Access is optimized for Windows, not the web. With Microsoft Access 2010 and 2013, there's an opportunity to extend an Access database into the web by hosting it on SharePoint and SQL Azure. From there, certain portions of an Access database can be run over the web. Forms and reports that don't have VBA code can run in that environment and provide a way to extend the application to non-Access users. They can even have custom behavior through the use of macros which are significantly improved over past versions. For some situations, this may be sufficient, but it's not comparable to creating a web solution using .NET or Java. The licensing rules and user counts around SharePoint also make it quite expensive to create solutions for the general public. That said, it may be the easiest way for non-developers to create database web solutions, especially if an existing database needs to expose a portion of it to the web. Not for Non-Windows PlatformsMicrosoft Access also does not support the Mac, iPad, iPhone, Android, and other mobile platforms. Access applications can be made available over the internet using Windows Terminal Services and RemoteApp (for details, read our paper Using Terminal Services and RemoteApp to Extend Your Microsoft Access and other Windows Applications Over the Internet). This approach may be appropriate for 10 or fewer simultaneous users, but it's different from a standard Microsoft Access application on Windows which can support hundreds of users over the network, or a true web application. Deployment IssuesAccess applications require users to not only have the Access database but also install Access. Access is huge and different versions of Access/Office also cause problems. Similar issues apply with deploying the runtime version of Access. In many organizations, Access is already installed on each desktop so this may not be an issue. Updating Access databases when updates are released is also challenging. Fortunately, our Total Access Startup program addresses both the Access version and database deployment, but it's not a built-in feature of Access. A great advantage of web applications is the centralized application. No deployment is required assuming everyone has a web browser, and updates to the application are made in one place only and immediately available to all users. Security and Data IntegrityAlthough Access/Jet Engine databases can be password protected and encrypted, Jet Engine databases do not have the same level of security as SQL Server or mainframe database systems. Similarly, data integrity and recovery is not as robust on file based databases like Jet compared to SQL Server with its triggers and transaction logs. Our Total Visual Agent product addresses the administrative needs of daily database maintenance (compacts and backups), but it's not the same as alternatives like SQL Server. Limited Scalability with its own Database FormatOne Access/Jet Engine database is limited in size to 2 GB. If a database exceeds that, the solution can't be entirely solved by Access. Jet databases also run into problems with too many simultaneous users. The number depends on what they're doing, but is limited to 255 simultaneous users. Limited User InterfaceApplications built in Access, unlike Visual Basic, are limited in appearance. Multiple document interface (MDI) applications cannot be built in Access and in general, users can tell if an application is written in Access. For some situations, programs like VB provide a more desirable user experience on Windows. Why MS Access is Important"Best of Breed"Access is the best solution for the segment between Excel spreadsheet and more sophisticated database solutions. In the pyramid, this is the area of individual to workgroup solutions. Access is the most popular database in the world by servicing this segment extremely well. Many Database Problems are Completely Solved by AccessAccess simply does its job well and for many situations, a more sophisticated solution would offer very little beyond what Access delivers. ROI: Access Solutions Cannot be Cost Justified on Other PlatformsAccess is a Rapid Application Development (RAD) tool. Solutions created in Access often require much less code than other platforms, and can be created by people who cost a lot less. Some databases are simply not worth a lot. A $40K business opportunity may support a $20K Access solution. But if the IT shop only offers $50K solutions, the choice is simple: it can't be done which has significant negative implications for the organization. Microsoft Access Provides Tremendous Competitive AdvantageBy being low cost, Access offers the opportunity to go after business that would otherwise be left to competitors. A tiny fraction of those seemingly "small" opportunities may become significant in the future. Being able to profitably participate in such engagements is strategically important for an organization. Many baseball players built their careers by hitting lots of singles. Every now and then one of them goes over the fence. You just don't expect it or know when it will happen, but you know the more at bats you have, the more likely it will occur. Exploring the Myths of Microsoft Access LimitationsAccess is often criticized for its scalability and migration limitations, but this is not so. Here's why: Most Database Problems are SmallMost database problems manage relatively small amounts of data and usually well under 100 MB. This is well within Access' strength and using a product like SQL Server would be overkill for such small amounts of data (SQL Server does offer features that might be important beyond database size). Few Database Problems Exceed MS Access' CapabilitiesAccess/Jet databases can support up to 2 GB of data. Access applications can link to multiple databases, so even using Jet databases, Access applications can manage lots of data. Very few database problems involve this much data. Microsoft SQL Server Eliminates the Scalability Issue
When people focus on the limitations of Access scalability, it's important to note that the issue is really about the Jet Database Engine, and not Access as the front-end to SQL Server. Of course it takes extra work to migrate to SQL Server, but a significant portion of the development investment is preserved. Hybrid Solutions WorkIf an application exceeds Access' capabilities, a hybrid solution with Access and other interfaces against SQL Server is often appropriate. We've created VS.NET applications for web solutions against SQL Server, with Access still playing a role inside the organization for administrative functions and reports. Using Access where it's appropriate maximizes ROI. Impact of the Sarbanes-Oxley Act (SOX)The Sarbanes-Oxley Act (SOX) is a huge issue within publicly traded companies and requires many organizations to perform detailed audits on all their systems that impact financial statements. This has resulted in comprehensive reviews of all data stored and manipulated on desktops and impacts not only Access, but Excel, Word, Outlook, and other documents and systems used by information workers. The result is a need to make sure all applications are properly documented, controlled, and reviewed for their impact on financial statements. A knee-jerk reaction by some organizations was to ban all Access databases. No alternative was provided to address the database problems that still needed to be solved, only the removal of a tool (Access) that could help. Obviously, this is very short-sighted and didn't solve the problem because banning Excel was impossible. That said, the increased scrutiny of where data resides, how it's modified, making sure it is properly secured, encrypted, and/or distributed, and preventing data on laptops from being stolen are all very worthy goals. Overall, IT departments are already overburdened and cannot create all the applications information workers need in a timely and cost-effective manner. The key is establishing the proper protocol on how data should be managed by individuals. We still need to balance the costs and benefits of allowing rapid, low cost database application development that have limited impact on financial statements vs. more important systems that require additional investment to ensure their integrity. That can mean the data is stored in SQL Server with an Access front-end or the entire application is locked down through a web interface or web services. As long as the tradeoffs and costs are understood, the organization is making a sound decision. Blanket decisions to ban a technology such as Access without providing alternatives is what gets organizations in trouble. We've seen a ban on Access causing people to purchase FileMaker instead. The database need didn't disappear with the ban, just the user's best tool so they found an alternative. The SOX issues remained. Why IT Departments Hate Microsoft AccessIn some less enlightened IT departments, there is a tremendous dislike for Access. While there's always been a love-hate relationship between IT departments and end users, when it comes to Access, many want to ban it from their organization. We believe this is caused by a few reasons:
The database may even come from a very important line of business where the business unit's manager outranks the IT department's manager making it more difficult to be successful politically and technically. We agree that these situations exist and IT departments are put in a no win situation. No wonder they hate Access so much. However, we believe these feelings are misdirected. Alternatives are WorseIf Access were banned from an organization, the IT department would need to create the thousands of databases end-users need, or end users will find another tool that's not banned (causing the same problem but with another technology to hate), or the databases will not be created and the organization becomes less productive and competitive. Let's also keep in mind there are many expensive applications created by IT departments or consultants that are never deployed or fully utilized because of poor design, end user resistance, or changes in the business which make the application unsuitable. The goal is to take advantage of the end user desire for their Access application and take it to a higher level they couldn't achieve themselves. Rather than a problem, it's a great opportunity and challenge to deliver real solutions to real business needs. Water Under the BridgeIT departments often complain that "Had we created that application in XYZ technology X years ago, we wouldn't have this problem." While we believe that's true, we do not believe that's realistic because X years ago:
The problem is there's a need to create this solution today regardless of whether Access ever existed. Rather than complain about the past and Access, let's focus on today's needs. Pretend it's X years ago and this Access prototype exists. That's a pretty good start and much better than nothing. The business need is known, the end user buy-in/desire is known, so it's a great opportunity for the IT department to create a successful solution. Remember Database EvolutionWhat IT departments forget is that they are only seeing the top and smallest portion of Access databases that are created in the organization. More than 95+% of Access databases created by end users will never require IT department intervention. Sure it would have been better to design and build it totally perfectly from the first day, but that's not reality. No one can anticipate which 1% of the databases created this year will become mission critical 5 years from now. It would be a complete waste of resources for IT departments to address all the database needs for end users when users can take care of it themselves quicker and cheaper. What IT departments see are the Access applications that evolved over time to become mission critical. They were never envisioned to become so important, so it's no wonder they are not robust. The problem isn't with the technology but the process and people involved. The priorities of the past are not the same as today. However, through the process of natural selection, they are the winners and now need more help. It's the IT department's role to assist at this point, not criticize. A great IT department accepts this is the way the world exists and is beyond their control. Anticipate this will occur and offer the services to achieve the organization's mission. Service LevelsOffering services to the line of business managers at different levels and costs (with tradeoffs), lets everyone know their roles and responsibilities. This allows the line of business manager to decide what makes sense for their business needs and risks, and lets the IT department off the hook if problems arise. For instance:
These are just examples some organizations are using to address end user database needs. Each level has increasing costs that may be on a project by project level plus monthly maintenance fees. Is MS Access a Professional Database?Over the years Access has gained a bad reputation in some circles by being considered a "toy" database or is somehow inappropriate for professional development. This is amazing since Access remains the most popular database in the world, and absolutely ridiculous since very powerful database applications are created in Access. The misconception is the result of two evolutionary trends:
Evolution of Access DevelopersMost Access developers evolved from non-programming professions. They fell into Access, discovered the amazing productivity gains, learned VBA, and become more and more sophisticated. Over time, they move from being more business oriented to programming becoming VB or .NET developers using SQL Server. These people now consider Access applications trivial. But the change is with the person and not Access. Access still does what it does well but that person is ready to move on. They now look down on people like their former selves challenged by database fundamentals they now take for granted. They forget they've become the people in the IT shop that their former selves tried to avoid, and that Access was their gateway to their successful career. Their evolution away from Access is okay, even expected, as others follow in their footsteps discovering the amazing solutions they can create with Access. Visual Basic Developers Look Down On AccessWhen Access was introduced, it took the database market by storm and became the #1 Windows database. Many database developers in DOS flocked to Access. Later Visual Basic, a pure programming language, attracted the hardcore database programmers and they started using the Jet Engine through VB and later SQL Server. In general, VB developers look down upon Access developers. This occurs even though the languages and IDE are identical. I consider this a religious disagreement rather than a fundamental difference. Using VB for all database solutions rather than Access, which was designed for databases, is not optimal. Anyone who's compared the report writing capabilities will attest to that. The problem here is with the developer and not Access. People who voluntarily change platforms (or religions) have negative impressions of their former beliefs. The same occurs when C++ and .NET developers look down on VB programmers. Likewise, the next level looks down on those people too. This has nothing to do with the technology but the journey of the individual. Evolution of DatabasesWe've already discussed the evolution of databases and how that's a natural phenomena. What gives Access a bad name is IT shops that are not prepared when Access applications evolve into their laps. When IT departments see an Access database, it's often a result of an emergency or other problem. They were not involved in its development, never saw it before, and are now asked to support and enhance a system with an impossible deadline. There's no documentation, the original developer is long gone, and it's a mess. Of course there's going to be resentment, but this is not Access' fault. Many Access databases are created by database novices and don't perform optimally, but blaming Access is not correct:
What aren't recognized by IT shops are the thousands of Access databases they never see. These are databases in production and doing their jobs, or died along the way. Databases the IT department never had the manpower to create, and solutions line of business managers wouldn't want to pay IT departments build. Recognizing the evolutionary trend of Access applications is critical to managing their life cycles and integrating it with the rest of the organization's database strategy. Using Microsoft Access StrategicallyNow that we've discussed the pros and cons of MS Access, how should it be used? Why Use Microsoft Access
When to Use Microsoft Access
Migrating Microsoft Access ApplicationsUsing MS Access, like any other database, also means preparing for alternatives when its limitations are encountered. Only a tiny fraction of Access solutions ever need to migrate to the next level. Options include:
ConclusionsDatabases evolve over time. Access cannot and was never designed to solve every database problem. What it does offer is a great, cost-effective, and quick solution for a wide range of common database challenges in Windows. Anticipate and welcome the natural evolution of databases, and you'll find an important role for Access in the overall database strategy of your organization. Compared to alternatives, Access offers tremendous ROI opportunities and competitive advantages to those who use it properly. Going back to our military analogy, think of Access as the tactical part of your IT team. It's designed to take care of small problems that don't need the resources of the main strategic force. Tactical teams are expected to do things cheap, quick and dirty. Often it is the BEST solution for the challenges they face. That said, there will be situations that grow beyond the capabilities of the tactical team. When an infantry calls for air support, good leaders don't complain why they need it. They just deliver overwhelming support to solve the problem and protect them. Good planners have the planes in the air awaiting the inevitable calls for help. Plan, anticipate, and optimize all your resources to address your constantly changing battlefield. If you don't, your competitors may. Good luck! Additional Resources
About the AuthorLuke Chung is the founder and president of FMS, Inc. (www.fmsinc.com), a world leading provider of custom database solutions and developer tools. Luke founded FMS in 1986 to provide custom database solutions, and has directed the company's product development and consulting services efforts throughout the rapidly changing database industry's evolution. In addition to being a primary author and designer of many FMS commercial products, Luke has personally provided consulting services to a wide range of clients. A recognized database expert and highly regarded authority in the Microsoft Access developer community, Luke was featured by Microsoft as an "Access Hero" during their 10 year anniversary celebration. Luke is a popular speaker in the US and Europe, and has published many articles in industry magazines. He is also a former president of the Washington, DC chapter of the Entrepreneurs Organization (EO Network), and a graduate of Harvard University with Bachelor and Master Degrees in Engineering and Applied Sciences. |
![]() |
Contact Us
l Web questions: Webmaster
l Copyright
© FMS, Inc., Vienna, Virginia |