@Imb
I must confess I have no idea of what this thread is about, but based on the first few posts, it seems you're trying to get ideas or contributions that help you scale your currently 50MB+ code base. But instead of scaling your app, what scaled is the heat in this thread in terms of the skepticism towards the solution you're currently showing, which you say is a single form that morphs into controls and that this approach helps you maintain more than 100 applications that may or may not be different.
Hi Edgar_,
I really feel more comfortable in the discussions with you.
My purpose is to present a way to develop applications very fast, for non-commercial organizations, that have not the budget to buy commercial software, and don't have the expertise to make these applications themselves. To service all kind of situations the program must be extreme flexible. And here starts the poo, poo and bla, bla.
Question 1:
Is the summary correct?
I am not scaling the code base, just to scale. The purpose is to add functionality and flexibility, whatever that is.
In standard Access all is fixed around forms, that all must be defined in the development mode of the application. In my opinion they are too static, because they can't be shared between applications. And if you encounter a special case, a new form must be defined.
Through many generalizations of code I came to the conclusion that not the form is the crucial object, but the control.
In standard Access, that is also accepted, and can be handled control classes. But still the static forms are there.
In my concept the form is reduced to a carrier of controls, and the controls are tuned to their "all-in" meaning (in standard Access terms including BeforeUpdate, AfterUpdate, Exit, etc
I really hope you see this not as bla, bla, but as a different way to use Access.
Question 2:
What are you actually doing? Are those textboxes being created on the fly or are they becoming visible?
With regard to the above, "The form" (in fact I use two template forms, one for continuous overviews and one for all the rest) is tuned in detail in the Open event of the form, through generalized code blocks, and these can be shared. The controls are already there, but must be "activated". An additional advantage is that you can create in memory all kind of form-representations to suit any situation.
It is even possible that a form on the screen, can be populated by a different overview from a different application.
But it seems all bla, bla in this community.
Question 3:
How does this approach actually help you maintain many applications?
In the separate applications I have no "hard-coded" forms, but only modules with generalized building blocks.
The effects of maintenance of the code base, is immediately reflected in all applications.
I also have one specialized database (DB.mdb) that can analyze every other application, and make corrections if necessary.
Also, in the develop-fase of an application I can automate the steps of adding table, modifying tables, adding field, modifying fields, etc. This only on the base of the tablename, and an "all-in" meaning of the control to be used. One of the "all-in" properties is, where the value of the control is stored: table/Item, field, type.
Modifications afterwards are as easy. All DDL-modifications of the FE are stored, including the procedures that are necessary to do for instance a fieldtype change. This is automatically synchronized on installation of a new version.
Question 4:
Did you even try to use classes to build your forms?
That is only necessary if you have many static forms, that must handle the different types of control per form. In principle I have one "fluffy" form.
Question 5:
Do you know other technologies, like HTML or WPF, do this by default and are arguably much easier to write than making this work with Access?
That is the point I want to clarify: that it is also possible in Access, with a different look towards forms.
Parallel to these "dynamical" forms I use "dynamical" reports: general building blocks to create HTML- or RTF-files on the spot by re-use of code. But that is an other story.
For explaining the concept you must know the total concept, but also all details, because these are determining the flexibilty.
I don't believe that from the code alone you can build a true view of the concept.
A working sample database does not give more insight, because then you can add records, and modify fields, and see all kind of handy things, but don't add to an understanding.
All is already in Access, but not integral.
Thanks to your questions, I have - finally - got the opportunity to clarify a little more what this concept means.
Thanks Edgar_,
Imb.