Sep 07

Microsoft Access Error 3045 Could Not Use Database; File Already in Use

Error Message

When you try to open a database, you may encounter this error message: Could not use [Database Name]; file already in use.

Explanation

This error occurs if another user (or instance of Access) has opened up the database exclusively and you try to open it. Maybe the other user opened the database in exclusive mode or made some modifications such as editing modules, which put the database in exclusive mode.

However, that may not be the case. This error can occur even if the other user has the database opened without opening it exclusively. What’s going on? Why would the second instance think it’s being opened exclusively?

What if the Other User isn’t Opening it Exclusively?

It turns out that another cause of this error is not immediately obvious and is related to workgroup security files. This applies to MDB files (not ADP or ACCDB formats). If two instances of Microsoft Access (DAO database engine) are using different system MDW files, a conflict may occur where the database appears to be exclusively locked by the other instance. The MDW file used by your instance of Access can be checked in VBA by examining the value of DBEngine.SystemDB.

Another copy of Access or DAO may have that database opened using another MDW file causing this conflict. This can come from another instance of MS Access, a Microsoft Access add-in or library reference, a VBA Add-in, or other program such as VB6, .NET, etc. that’s connecting to that database.

To avoid this, if you’re using workgroup security, make sure every instance is pointing to the same shared MDW file. This is often defined in the shortcut used to launch Microsoft Access, or if you are opening a different database programmatically within your VBA code.

Additional Resources

Visit our Microsoft Access Error Number and Error Description Reference site for a complete list of Microsoft Access error numbers, many with links to resources explaining and resolving them.

total-access-admin[1]If you’re interested in seeing who’s going in and out of your database in real-time, check out our Total Access Admin program. It’ll let you monitor multiple databases across your network to see when users enter and exit your database and flag instances where connections are dropped suspiciously.

Aug 22

Microsoft Windows Common Control Library (MSCOMCTL.OCX) Security Update Requires Fixing

ActiveX ControlOn August 14, 2012, Microsoft released a security update for Microsoft Office that includes an update to the Windows Common Control MSCOMCTL.OCX.

Unfortunately, this update causes problems with existing Microsoft Access, Visual Basic 6, and other applications that use the common control such as the Treeview and ListBox controls. For us, this impacts our Total Access Analyzer program which uses the Treeview control in its database explorer feature. It triggers this error:

Error 459 – Object or class does not support the set of events,
Procedure clsFrmExplorer_TAA.InitForm

Microsoft provides a workaround for this problem in a Knowledgebase article, but it doesn't always work. We've come up with a solution that addresses this problem reliably.

Read our article Fixing the Microsoft Windows Common Control Library (MSCOMCTL.OCX) Security Update for more details.

Jul 27

Total Access Analyzer Version X.9 Released for Microsoft Access 2007 and 2003

Microsoft Access 2010Microsoft Access Database DocumentationMicrosoft Access Database DocumentationMicrosoft Access Documenter

Total Access Analyzer is the most popular Microsoft Access product of all-time! In conjunction with the release of the Microsoft Access 2010 version, we’ve added many of the new features to the Microsoft Access 2007 and 2003 versions.

In addition to the comprehensive documentation and analysis of your database objects, macros, and VBA module code, Total Access Analyzer version X.9 adds:

Detection of Additional Errors and Suggestions

  • Timer Interval and Timer Event Mismatch
  • Queries Using Other Queries with Both having GroupBy Clauses
  • Action Queries Opened by OpenQuery Command
  • SQL Server list of reserved words updated for SQL Server 2012

Displaying Additional Documentation Results

  • ActiveX controls appear as a New Category under General
  • New Table-Fields folder under Tables lets you view field properties across all your tables in one screen
  • Enhanced Opening of Referenced Object in Design Mode (view the documentation and immediately jump to the object to make changes)

Report Enhancements

  • Preview Multiple Reports at One Time
  • Color Customization for Reports
  • Enhanced Macro Dictionary Report
  • Many New Reports

New Module VBA Documentation and
Options for Microsoft Access 2007

Improved User Experience

  • Support for Windows 7 (in addition to XP and Vista) and Office Themes
  • Installation options for the current user or machine, with support for User Access Control permissions

Existing customers with premium support subscriptions receive the upgrade for free. Other existing customers can upgrade for a nominal fee. The free trial download is available.

Jul 17

Total Access Analyzer for Microsoft Access 2010 Update and Demo Version

Microsoft Access 2010Microsoft Access Database DocumentationMicrosoft Access Database DocumentationMicrosoft Access Documenter

Total Access Analyzer is the most popular Microsoft Access product of all-time! Documenting and analyzing your database objects, macros and VBA module code, Total Access Analyzer helps you understand what's going on. Take control of your MS Access applications and find errors and ways to improve their design and performance. Over 300 issues are pinpointed with 380 presentation quality reports for comprehensive documentation and cross-referencing of your application. Winner of every Best Microsoft Access Add-in award with great reviews, Total Access Analyzer remains the "Must Have" tool for serious Microsoft Access developers and people who inherit existing Access solutions.

What's New

Thank you for your support in making Total Access Analyzer such a great success!

Jul 09

Microsoft Access Application Standards

Here’s a response to a question about the standards we implement for our Microsoft Access applications. These are some fundamentals for ensuring a solid foundation for professional Access solutions in priority with some resources related to them:

  1. Establish a backup, compact and repair, and disaster recovery plan. We use our Total Visual Agent program to schedule and automate the daily database chores.
  2. Putting in a comprehensive and global VBA error handling structure so crashes are documented with the procedure call stack and we don’t have to rely on a user’s recollections. As part of the error handling, we also always add line numbers to the code we deliver so we can pinpoint exactly where a crash occurs. We use the Code Delivery feature of Total Visual CodeTools to do this.
  3. Split Database Design. Without this, it’s nearly impossible to enhance the database while others are changing the data.
  4. Cleaning up VBA code. From code indentations to applying our variable naming conventions along with prefixes for global vs. module vs. procedure, and constants vs parameters vs. regular variable names. We use the Code Cleanup feature of Total Visual CodeTools to do this. Personally, without cleaning it up to our standards, I find it nearly impossible to get any work done while I’m struggling with someone else’s convention.
  5. Setting up a development, testing and deployment process so changes can be implemented safely and efficiently. Lots of issues around this but having a fast, stable way to manage changes and how people launch the Access application is critical. We use our Total Access Startup program to help with this.
  6. After these structures are in place, we’re ready to run Total Access Analyzer against the database to address the issues it finds wrong and could be improved in the application.

For additional details, including Luke Chung’s PowerPoint presentation at the Portland Access User Group conference in May, read his paper Taking Over Legacy Microsoft Access Database Applications.

Jul 05

Luke Chung becomes Microsoft Most Valuable Professional for Microsoft Access


Microsoft has officially designated FMS President Luke Chung as a Microsoft MVP for supporting the Microsoft Access community.

Since the official launch of Microsoft Access twenty years ago, Luke Chung has been at the forefront of the Microsoft Access community (read his impression on the day Microsoft Access debuted). He has written numerous articles, spoken at conferences around the world, and collaborated with the Microsoft Access development team over the years. His leadership propelled FMS to the world’s leading developer of commercial products for Microsoft Access with tens of thousands of customers in 100+ countries.

While there are more than 100 million social and technical community members, only a small portion are selected to be recognized as Microsoft MVPs. Each year, around 4,000 MVPs are honored. 982 were recognized on July 1, including Luke. These individuals were chosen because they have demonstrated their deep commitment to helping others make the most of their technology, voluntarily sharing their passion, and real-world knowledge of Microsoft products with the community. Candidates are rigorously evaluated for their technical expertise, community leadership, and voluntary community contributions for the previous year. They come from more than 90 countries, speak over 40 different languages, and are awarded in more than 90 Microsoft technologies. Microsoft Announcement


   

Congratulations Luke!

Jun 18

Taking Over Legacy Microsoft Access Database Applications

There are many, many legacy Microsoft Access databases that need to be supported and enhanced. Often the original developer is long gone and there’s little to no documentation available. Yet, you’re expected to take care of it.

No matter what technology it is, taking over someone else’s work is always challenging. It’s even more challenging if you become responsible for a system that you (and no one else) understands.

FMS President Luke Chung explored this topic during his presentation at the Portland Oregon Microsoft Access User Group Conference. Learn about the issues and techniques we’ve learned over the years to triage, enhance, and support Microsoft Access applications, including migrating and upsizing to SQL Server and other platforms.

Here’s a paper and PowerPoint presentation: Tips and Techniques for Taking Over an Legacy Microsoft Access Database Applications

May 24

Microsoft Access Crosstab Queries in Reports on the Microsoft Access Developer Blog

FMS developer Molly Pell is featured as a guest blogger on the Microsoft Access developer blog.

This post demonstrates how to use the Pivot statement to control column names returned by crosstab queries, allowing crosstabs to be used on reports.

Check out the full post, Using crosstab queries in reports.

For another paper with an example of Creating an Annual 12 Month Summary Report without VBA Code by Creatively Using a Microsoft Access Crosstab Query

May 09

Microsoft Access Database Architecture: Taking Time into Account and Shadow Tables


When designing an application and its tables, it’s very important to capture the time dimension and determine how data should be stored with the expectation that it will change over time. While there’s a natural tendency to keep data normalized so that the same information is stored in only one place, the time dimension also needs to be considered.

  • What Needs to be Preserved Over Time?
  • Making Sure Data Normalization Doesn’t Lose Historical Data
  • Shadow Tables

For more details, read our paper: Microsoft Access Database Architecture: Taking Time into Account and Shadow Tables.

Additional papers and resources in our Microsoft Access Developer and VBA Programming Help Center.