message do one thing, and Access does
another.
Fails because: You are confusing prompts with (2), deliberate action. You
told the car to start but turning the key, there's no need to ask again.
Likewise if you press the Save button on my form, there's no need to
prompt
again.
On the other hand, when a user navigates to a another record..WHY would they
want to navigate to another record? The user wants to move to the next
roared, and MOST CERTAINLY they want the current record saved. I see NO
reason to ask the user to save the current record? Why would a user try and
move to another record without first wanting to save? This is in fact
exactly the same thing as the user starting a car. Moving to another record
is deliberate action on the part of the user. Fact is, moving to another
record implies the user wants to save the current record. This is most
certainly deliberate action on the part of the user. I am MOST CERTAIN we
took a poll of people and asked them if they are going to navigate to new
record..do they want the current record saved? (99 out 100 times..the answer
is yes..for the exception..the user should use the undo). The problem here
is you are applying a concept of document like word to ms-access which is a
database. DBase, FoxPro, DataEase, Reflex and most database applications
have this implied save. In fact, even using the Enterprise tools for sql
server, you will find that navigation again has implied saved when editing
data. You got the whole database industry against you on this issue!
Having excel save the whole document is not a fair comparison here. However,
what is a FAIR comparison would be to prompt the user to save each row BACK
INTO the spreadsheet when a user navigates (and that was my point). You seem
to be telling me that navigation is not a deliberate action, and it should
not
save the data.
So, my point about Excel is not saving the whole document, but in fact
saving the current row. Fact is, when should a row of data in Excel be
committed to the spreadsheet? And should the user be prompted for each
row...(and, no..they should not!).
And, the above issue also applies to closing a form. In fact, if a user
closes a form, then that is a deliberate action again..and save should be
implied.
Now, having said the above..I am in total agreement with you about the undo
issue! It is a WEAK spot in ms-access, and I SHOULD be able to wrap a form
session in a transaction. (this would give me my needed un-do..and give you
an
ability to save).
Example that addresses my concern: You turn the key and it shifts into
drive. I mean, why else would you start the engine but to drive, right?
We are talking about reasonable action here.
Fails because: No permanent change to user data (the file is unchanged),
obvious undo (take it back out), is the result of deliberate user action
(wants to put it in the cabinet).
Oh,...no, I am assuming we did modify the documents in the folder..and now
are
putting it back. No way should I prompted again.
Example that addresses my concern: You put the file into a file cabinet
and
it mails a copy to your boss.
That is not expected behavior, nor what 99 out of 100 people would want.
However, it is WITHOUT QUESTION that 99 out of 100 people want the file
saved!. The difference between a good software developer and poor one is
that
you have to make a reasonable assumption here. You have to think here!
Example that addresses my concern: You hit send and it also CCs your mom.
No, the above is a poor example, since that is not what people would
normally want! A good example is that you hit send, and
then the software prompts you to save the document into the out box. Every
person on the planet agrees that the document should be saved into the
outbox.. (you seem to hint that the user should be prompted in this case).
It would be silly to have the document cc to someone else (that is just
plain
silly logic here). The real issue here is because of user action, should
the user be prompted to save the document in the outbox. IT IS IN
FACT SAVED THERE FOR YOU!!! Users are NOT asked if
they want to save the email in the out box. Fact is, it is just a bad
idea to nag users all day..so the designers do not!!
You seem to hinting that users all day long for hitting send
also need to be prompted to first save the document into the out box!. I
just can't buy this concept. It is a good thing that send saves the email
in the outbox..and it is also a great feature that navigation implies a
save.
Now lets consider my case. The user clicks in the window and the record is
saved out, thereby causing a permanent change to the user data. While that
change is potentially undoable, it is also unintended (I didn't say save,
print, send, or anything like that, I _clicked_ on something that wasn't
even
a button!). It is also potentially time consuming, non-reversable and
dangerous.
As I mentioned, mere navigation in a lot of software implies a save.
This is very bad UI. Period. In fact, I can think of only a few programs
that operate this way, and they too are bad. Let's consider other apps
first
though, even sticking with Office...
Hum...I mentioned virtually every database system, and including the
enterprise tools for sql server implies a save. You certainly have placed
you self above the whole industry on this.
Subforms look like tables (sort of). Excel works with tables. By your
logic,
it would be OK if Excel saved every time I click in another cell.
No, by my logic, you would be prompted to save each row INTO the
spreadsheet. That is big difference here. Again, you are brining in the
concept of that Excel happens to be a document..and not a bunch of separate
records here.
Lets further clear this. When you move to a new record in
the sub-frm, the WHOLE DATABASE IS NOT SAVED. So, NO ONE is suggestion that
the WHOLE database and ALL RECORDS be saved. We are talking about ONE
record. So, no, saving 10,000 rows of data in a spreadsheet due to clicking
on another cell is absurd. That is crazy..and no one would suggest saving
10,000 rows...would you?
However, you seem to be suggesting that moving down one row should case a
prompt? Fact is a
row navigation in Excel does not case a prompt, and nor does it in ms-access
(or, most database systems in this case). Neither Excel, or ms-access cause
all rows of data
to be saved by a simple navigation. So, if a simple click in Excel case the
whole document to
be saved, you could be saving THOUSANDS and THOUSANDS of rows back to disk.
This
not even close to being sensible here.a.nd further that is not what happens!
However, ONE row
certainly gets saved to disk in ms-access due to ravaging. And my MAIN
POINT is that
NEITHER Excel, or ms-access prompt you!Again, I rest my case on this one!
Subforms also look like "subdocuments". Excel has these too, as
worksheets.
Again, I think you'd agree that Excel should not save every time you click
between sheets.
As mentioned, it is silly to apply a document system concept to that of a
database where each row is a separate piece of data. If you could save
part of a Excel sheet..then now we have to deal with save prompts!
If excel allowed saving of each individual cell to disk..then what would
you suggest? Again, the issue here is stupid and annoying save
prompts..and also that of user actions.
Of course these programs don't work this way, because it's a bad idea.
Well, Foxpro, dataese, ms-access, sql enterprise tools and just about every
data program on the planet does work this way.
So, you are in VERY lone company on this issue.
Access's surreptitious saves are also a bad idea for the same reasons. We
live with them because that made it easier to write Access, and, let's
face
it, Access is pretty kick-ass for development so we all put up with it.
Lets be careful here. There is the issue if implied saves is different then
that of having a roll back...or a un-do. Fact is virtually the vast majority
of
data programs have implied saves due to navigation. The whole software
industry
for the last 20 years is on my side on this issue. You have every right to
express your option here..but the whole computer industry for 20+ years
simply don't agree with you. Further, as I said, even MORE software is
adopting implied behaviors to day.
However, where I do agree with you is that we need the ability to bail out
the changes to a form + sub-form combo. It is difficult to wrap the form
in a transaction (you can do this by the way!). However,that is COMPLETE
different issue then implied saves..which the whole database industry has
had
for 20+ years.
Note that in order to solve this, MS has spent a considerable amount of
effort on ADO.NET in order to avoid these issues by working in a
completely
disconnected fashion and only saving when the user deliberately calls
.update. Unfortunately this hasn't rolled into Access yet (any likely
won't).
Disconnect reodrdsets is one way. However, we don't need the new ado model
to have a commit, or rollback to solve this problem. You can also use
un-bound forms (that is what most VBers use). Or, you simply
make a copy of the data (which the .net ado in effect does).
And, further, stuff like record navigation again can still imply save
when you use ado.net. It will be up to the developer in this case!
Again, you are confusing the issue of implied saves with that of having
a commit..or rollback here, or very simply a COPY of the data! Just
because some software uses ado.net..this does NOT mean that
navigation will not save data.
Further, MS-access forms don't come with a save button, nor are users told
to use one. As a general issue, you don't see save buttons in ms-access
applies. They are not needed.
click on row != save changes
Well, you better go talk to the designers of dBase, FoxPro, Reflex, sql
enterprise tools..and a whole lot more to see what they had to say on this!
Sorry..but navigation does imply saves...and has for 20+ years...