snooka9 said:
Thank you!
I'm of the "if it ain't broke, dont fix it" mindset myself, I just wasn't
sure if I was missing out on something.
Quote:
"....however, if the table has a TS, these two groups will be
interlinked
because the real groups will be { A, B, C, TS } and { D, E, F, TS }, with
TS
as the common point."
Nice! I hadn't thought of it that way. Alot of my data is editted this
way,
so I think by adding the TS that I would end up making things more
difficult
on myself in the long run (with users calling me EVERY time they receive
a
"data has changed" error, no matter how much I reassure them <sigh>).
Exactly, some people make an heavy use of subforms and sometimes these
subforms will point toward the same table; while other people will require
that all subforms point toward different tables, splitting them as
necessary. In the first case, adding a TS will bring heavoc but will
leave unaffected the second case.
In your case, you should make some tests to be sure that you are (or not)
in this situation. Personally, I've just made one with a simple testbed:
two tables, one with a TS and the other without one; two forms, each with
two subforms and the following select statements for the main form and
each of the subforms:
Select IdTable from [TableWithTS]
Select IdTable, A, B, C from [TableWithTS]
Select IdTable, D, E, F from [TableWithTS]
Select IdTable from [TableWithoutTS]
Select IdTable, A, B, C from [TableWithoutTS]
Select IdTable, D, E, F from [TableWithoutTS]
and got the expected result: an error message in the first case and no
error message in the second when I was editing the data and switching
between the subforms.
Notice that even if you don't use two or more subforms pointing toward the
same table, you can still have trouble with adding a TS if you have some
other construct with the capability of changing the value of the TS even
if the referenced fields in a form/subform are left untouched. For
example, you might have some piece of code that will calcule and update
some background value and this calculation could occur in a variety of
places; for example in the OnBeforeUpdate or the OnAfterUpdate event of
either a control or of the form itself. You could also have unbound forms
or subforms (or a mix of bound and unbound forms/subforms) whose updating
code will be affected by this. You could also have some kind of
replication or synchronisation mecanism or some kind of trigger that will
affect it or even or even another type of frontend that might be affected
by this or make your frontend be affected by it.
There is probably no such thing as a totally 100% innocuous change that
you can chose to apply globally to a system without running the risk of
breaking something.
In many cases, this risk might be low or very low but it's never 0% and in
my opinion, the risk of adding a timestamp on hundred of tables on an
existing system in production is far from beeing near the 0% level.
Personally, I had my share in the past of systems who have broken down
because someone has decided to make an *innocuous* change only for the
sake of making changes.