I want to build a database with access but the dynamic saving feature is
like
a ticking time bomb for me. It is a matter of if rather than when that I
will
destroy my database unwttingly. I understand that I could save a backup,
but
since everyone of the hundreds of softwares I've used in the past act
differently it is a matter of time before I unconsciously do not.
Actually, there is amazing amount of systems in place that do implied saves
for you. For example, take outlook express. When you create a email and
send, in fact the email is first saved to the outbox. You are not prompted
in this case. (after all, it would be silly to be asked to save after it is
clear that the user already hit send. It is much like car, where you turn
the key, and the up pops a box, asking - do you want to start the car?
And, even in product like outlook, if you create a "note", and close it..it
actually gets saved..and again no prompts....
And, the wildly successful (and easy) to use palm pda's also have implied
saves.
And, just the act of placing, or moving a icon on your desktop also saves
the position of the icon to disk for you (should we annoy the user and
prompt in that case?).
The main difference here is that products like word, or excel are document
orientated..and not data orientated (and, to be fair, products like word
does in fact have a autosave!).
A user working in excel editing one row of data does not think that moving
to the next row should cause a save. However, when you present the data as a
grid from a database..then moving via the cursor does cause a save. The
difference here is one system is a document, and the other is a data
management system. FoxPro, Dbase, DataEase, Filermaker, Knowledge man, alpha
5 etc all in fact use implied saves (I am hard pressed to find any database
product that actually prompts for a save due to record navigation). Heck
even the tools for sql-server also use implied saves.
Once again, if a user is moving to the next record...then I can't imagine
why they would not want to save? (there might be the exception..but then why
torture the rest of the world for these exception).
So, the above is not a big deal..but virtually all database products I used
have implied saves..and just like turning the key on a car..it is the users
actions that dictate what happens.
However, while the issue of implied saves can be debated, and we can perhaps
disagree in this issue..users should in fact have a undo-command.
You can easily implement a save dialog in a ms-access form. However, if you
are going to use a sub-form, THEN YOU CAN NOT do this!! The reason for this
is that ms-access uses bound forms, and the instant you move the cursor (or
click via the mouse) to a sub-form,t he main form record is SAVED to disk.
The reason for this is simple:
You can't add child records to a table without first having saved the
parent record.
So, if your application will not use any sub-forms, then y ou can implement
a save dialog into your application..but if you going to use sub-forms,
then this whole concept breaks down. The only solution is to make a copy of
the main form data, and a copy of the sub-form data..and let the user edit
that data..and then sent it back to the table (this is messy...but about
only reasonable option you have).
You might have to re-consider your desing, and adopt the impled save that so
much of the software you use already does..