- Local time
- Today, 01:34
- Joined
- Feb 19, 2002
- Messages
- 45,405
Welcome aboard but you are making the typical uninformed non-Access user mistake. You don't actually understand what Access is.As databases go...Access is pretty limited in comparison to say My SQL or SQL Server
Access is NOT a database. PERIOD. MySQL and SQL Server can't do anything that Access can do is the proper way to look at it since they can't develop applications but Access can. They are database engines, not application development tools. Access is an application development tool. In fact it is a RAD tool. It is NOT a database. Jet and ACE are databases. They are designed to work on a desktop or a LAN. When Access is connected to a Jet or ACE BE, Access is constrained by the limits of that BE. i.e. a physical max of 255 users but a practical max of ~ 50 concurrent users. However, when Access is connected to a SQL Server BE, it is constrained instead by the number of seat licenses you have for the server so if you have thousands of seat licenses, you can have thousands of concurrent Access users. So, Access is as expandable as you want. The weakness of Access is that it does not easily support multiple simultaneous developers so perforce, applications built with Access rarely get very large (I'm not talking about the size of the tables). However, over the course of years, you can build anything so there are actually lots of huge applications written in Access. They were just created one feature at a time by a single developer or a series of developers over time.
The Access/Jet/ACE synergy is confusing and way too many people confuse Access with a database engine. They do not understand Access' connection and dependence on Jet/ACE. Access objects are stored in a Jet (.mdb) or ACE (.accdb) database container so Access cannot survive without Jet or ACE. However Access is not dependent on Jet or ACE for its data storage needs. Access can work with ANY RDBMS that supports ODBC. It even works with custom ODBC drivers such as the one for QuickBooks to produce add on functionality for QuickBooks. Jet/ACE have a stand alone exe and can be and are frequently distributed separately. They too can be used by any application that is ODBC compliant. Access however provides a GUI that works like SSMS for SQL Server. You use Access to create/manage Jet/ACE objects using a GUI if you don't want to use DDL or DAO/ADO code.
Access is not a general purpose tool. It is intended to be used to build data-centric applications that work on a LAN. You would never use it to build a graphic intensive game or a channel program (low level code that connects the operating system to various devices) If you need something else, you should find a different tool. Since Access is a RAD tool, it does lots of stuff for you which is very helpful to people who have no development experience. For people who do have development experience, Access is a real challenge because they keep trying to make it work the way they think it should work instead of adjusting their attitude to go with the flow. Let Access be Access and it will be easy and extremely fast as a development tool. Or you can fight with it and spend your life frustrated. Since I came to Access with 30 years of experience, I can tell you that the hardest thing for me to do was to stop writing code that didn't need to be written. Properties, functions, queries. If those don't work, then you can think about code. Once I understood how events worked which is also not that easy if you are not used to an event driven environment, I learned to use them to control my world.
One very important thing to understand about Access is that it is intent on not losing any data so it will save your data at points in time that confuse you. The only way to control it is to understand the Form's BeforeUpdate event. Think of it as the flapper at the end of a funnel. If the flapper is open, the data gets saved. If the flapper is closed, the data does not get saved and YOU are in control of the flapper if you simply put your code in the correct event.