AS has given you some good starting points, so I'll focus on the terms being used here.
As Atomic Shrimp indicated, this is a big undertaking and I think it's very essential that you and whoever is in charge clamp down and understand precisely what you want. You threw out 'data mining' and 'data warehousing' in the OP, and I have to ask are you/your company sure you understand what it means and entails and whether you actually want that?
The reason why I ask that is because without a clear understanding of what your company actually need, it's possible to end up with wrong product or wrong approach or worse, both. Take data warehousing for example. It usually means you're storing terabytes of data in a simple, somehow de-normalized schema such as star or snowflake schema that makes ad hoc querying/reporting upon the schema more straightforward for several users. In this case, all users are just read-only, and data warehousing merely receive updates/inserts from a designated source in bulks.
This is in contrast to say, Decision Support System (DSS) where many users may input new data, modify data, then report upon most current snapshot of the data. Obviously, DSS has much more writes than reads, requires a robust OLTP system in contrast to data warehousing (which could be more generally classified as OLAP), where performance consideration may necessitate a need for non-transactional system simply because users aren't going to be writing to the source.
Here, I've given you some more terms, but I think what should matter more is that instead of picking a term that sounds good to you, write out the specs first and see which term fits your specs the best and look into this.
While on the subject, it also serve to help clearly distinguish what a product is. Access for example is actually just a rich client that's capable of using many data sources to do data processing. It happens to be conveniently packaged with a local database engine (Jet/ACE) which you can either not use or use in conjunction with the chosen backend, be it Oracle, SQL Server, MySQL, whatever. You can equally choose to use web clients instead of Access for the same backend or do it from scratch in C/C++, Java, whatever floats your boat. What matters the most is that it also meets your requirement the best.
For example, if you want a flexible front-end that you can update and change rapidly and readily, Access is your prime candidate. But if you must have online access independent of VPN or secure tunneling, you may have to look into ASP/ASP.NET/PHP/Perl/whatever. Furthermore, if you have resources and money and your requirement are such that it won't change for 10 years (e.g. data warehousing), it may make sense to use C/C++, Java to create your custom front-end client.
I'll say it again, get the specs down and crystal clear. Spell not just 'whats' but also 'hows'. You said 300 users. That's a 'what' but you need to identify the 'how' such as connecting to the source via a web client, a thin client, a rich client, or carrier pigeons.
You may also want to
take a look at the guide for more high-level discussions on using ODBC source which may indirectly address the questions you have and help you refine the questions/specs.
I hope this help.