Is it feasible to use Excel as a multi-user database frontend via ODBC?

I have a situation where there’s a database containing tables with around 200k records that get updated regularly. A client wants to use Excel connected through ODBC as the main interface for data management. They need about 25 people to be able to work with this data at the same time.

My gut feeling is to suggest a different approach like a web-based solution. However, if the client is set on using Excel, I’m wondering if this could actually work and what problems might come up.

Here are my main concerns:

  1. Data consistency issues - What happens when multiple people try to edit the same records simultaneously?
  2. Performance problems - Won’t Excel try to load massive amounts of data each time someone opens the file?
  3. Access control difficulties - How can you restrict certain users to only see specific data when everything gets pulled into Excel?
  4. Wrong tool for the job - Excel wasn’t really designed for this kind of multi-user database work

Has anyone dealt with something similar? What are your thoughts on whether this approach could be made to work?

Interesting challenge! What kind of data editing do they actually need? Are all 25 users modifying records, or mostly just viewing and filtering? And why are they so attached to Excel specifically? Understanding their workflow could help you find a compromise that feels familiar but actually works better.

absolutly! been there too - it was a mess! would crash all the time with just a few users. definitely push for a more robust soln like a web app. excel is great but not for heavy multi-user stuff!

The Problem: You’re using Excel with ODBC to manage a database with 200,000 records and 25 concurrent users. Your concerns are data consistency, performance, access control, and whether Excel is the right tool for the job.

:thinking: Understanding the “Why” (The Root Cause):

Excel, while versatile, isn’t designed for concurrent database management on this scale. Its limitations stem from its architecture:

  • Single-User Focus: Excel primarily functions as a single-user application. While ODBC allows connection to external databases, it doesn’t inherently manage concurrent edits effectively. When multiple users modify the same data simultaneously, conflicts are likely, leading to data inconsistencies and potential data loss. Excel lacks the robust transaction management systems found in database applications.

  • Local Data Caching: Excel tends to cache data locally. With 200,000 records, this can lead to significant performance issues, especially with 25 simultaneous users. The initial data load time will be substantial, and constant refreshes will strain both network bandwidth and individual user machines.

  • Limited Access Control: Implementing granular access control within Excel connected to a database via ODBC is complex. You’d need to manage this at the database level (e.g., using database roles and permissions), which adds complexity and isn’t directly handled within Excel’s interface.

  • Scalability Challenges: Excel simply doesn’t scale well for this use case. As the data volume or the number of users grows, performance and stability will inevitably degrade significantly.

:gear: Step-by-Step Guide:

Consider migrating to a more suitable solution. A web-based application provides the necessary features for managing a database with multiple concurrent users:

  1. Choose a Web Application Framework: Select a framework based on your team’s expertise (e.g., React, Angular, Vue.js). This will provide the front-end interface for your users to interact with the database.

  2. Select a Database Management System (DBMS): Choose a robust DBMS (e.g., PostgreSQL, MySQL, SQL Server) optimized for concurrent access and data integrity. This will replace the use of Excel as your data storage and management system.

  3. Develop a Web Interface: Build a user interface that allows users to view, filter, and edit data. Design the interface with user experience in mind, ensuring ease of navigation and data manipulation.

  4. Implement Access Control: Use the DBMS’s built-in security features to control user access, defining roles and permissions to restrict data visibility and edit capabilities on a per-user basis.

  5. Test and Deploy: Thoroughly test the application with a subset of your users to identify and address any issues before a full rollout. Ensure adequate server resources to handle the anticipated load.

:mag: Common Pitfalls & What to Check Next:

  • Data Migration: Carefully plan and execute the data migration from your current database to the new DBMS. Data validation and integrity checks are crucial.
  • User Training: Provide comprehensive training for your users to ensure they understand how to use the new web application effectively.
  • Backup and Recovery: Implement robust backup and recovery strategies to protect your data in the new system.
  • Scalability Planning: Design the web application and database infrastructure to be scalable to accommodate future growth in data volume and user base.

:speech_balloon: Still running into issues? Share your (sanitized) config files, the exact command you ran, and any other relevant details. The community is here to help!