I am building the database for the way that I think and work Only 3% of the population has my personality according to the Myers-Briggs Personality Type literature.
Then maybe if you are developing an app that other people will use, you might want to create something the ordinary people will understand. If you were developing only for yourself, it wouldn't much matter how the interface worked but if you mystify the target audience, they won't use the app.
And Pat, what is the basic principle about not having lots of forms in a database?
We start by normalizing the schema. Then we make whatever forms we need to update the schema and reports to turn details into data. Usually you will end up with only a single maintenance form per table but it really depends on the application. When you end up with multiple forms to update a single table, you need to do the common validation in a standard module that you call from the BeforeUpdate event of each update form so that you never duplicate validation logic.
es, I could have done more with normalization, but I discovered a new disease every week.
That should not have altered the schema
I created a form for the Walmart to the west of my house, the King Soopers to the north, and the Safeway to the south, plus the Costco down the street. They are different kinds of stores and I shop them in different ways. Some deliver groceries and some don't. So a form doesn't necessarily mean what you think. The different forms have different pictures and they calculate total costs differently.
Do you think Walmart has a separate form for every vendor it deals with? No, they don't. Somehow, normalization works for them too.
I admit that the database is designed incorrectly. But show me an application with everything that I have in my system, changes from day to day, and, and, and.
I can't. Professional applications don't work that way.
I am developing the application using an Agile development process.
Agile does not mean chaotic nor does it mean with sloppy practices. You've named at least three unrelated sub-applications. Putting them in the same database does nothing for you. Developing them all at the same time simply creates chaos. Work on one section at a time so you can focus and your users can also.
I'm sure you apply discipline to research in your own field. Software development also requires discipline. The more discipline you can muster, the less rework you have. Experience also comes into play. I have a much better feel going into a new development project for the kinds of things that get changed as the development unfolds because I've been doing this for 50 years. Therefore I am less likely to make a wrong decision with normalization or program flow. I also have enough general business experience as well as far reaching interests so I can ask intelligent questions as the users are describing their business needs.
I rarely run compact and compare because I don't do operations that change the data very often. This could be a benefit of making my forms so verbose.
It isn't a benefit, it is poor practice. Whenever you update a record, if you happen to make it longer, it may get moved to the end of the data area if there isn't room to rewrite the record in the current block. It's the same concept of how windows files get fragmented. C&R puts everything back in order and updates the statistics which ultimately makes queries more efficient.
Pat, my database will handle new grocery stores just fine. I store the names in a lookup table and forms use dropdown fields to assign them to each transaction.
That's because the schema is not as unnormalized as your Menu form makes it look. Apparently you have some way other than updating the Menu form to get to new stores.
Two certain signs of improper normalization.
1. Field/Object names that include data. So having a menu item named "Walmart" should make bells go off in your brain.
2. Field/Object names with numeric suffixes or string prefixes indicating multiple instances of the same type of item.
I am curious to know why I shouldn't have 4 or 5 thousand forms and reports. They are used to store and display data differently. My database has about 4000 tables.
Without looking at the database, I can't categorize your mistakes. I can only generalize based on the mistakes other new developers who have no understanding of normalization make. In general, your mistakes are caused by not normalizing the tables, by not using parameter driven queries to select data, and by not using VBA effectively to control form behavior. You are doing way too much work duplicating and modifying objects rather than learning how objects can be reused.
The grocery forms are one example of making unnecessary objects, each form is hard coded for a specific store rather than using one form that displays data for any grocery store and using combos to define the options for each store.