Since you aren't willing to try my Undo suggestion there is nothing more
I
could have done anyhow. Good luck.
As I told you, all my fields are bound fields and I have code in form
properties:
OnOpen [Event Procedure]:
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
End Sub
Solution with Esc is ok for me, but this form will use and other
people,
and
I can't tell them to do Esc, if they don't want to save that record.
I wrote some code by macro with IsNull option, something like: if all
fields
are empty, don't save that record. But, it wasn't work.
That 's it. And thanks anyway.
Smoki
:
My SomeField is the same idea, I think, as AVeryKeyField in the other
part
of this thread. Test the value of a field that must be filled in. If
it
is
blank, don't save the record (or at least give the user the option, as
I
suggested). Regarding bound fields, the information entered into them
is
saved as soon as the record is updated. The record is updated when
you
move
to another record, close the form, close the database, or explicitly
save
the record (there are a few other ways this can happen, I think).
Until
the
record is saved, pressing Esc twice will undo the record, or you can
use
the
Undo code. You say you tried "something" with Undo, but what exactly
is
that?
Assume when somebody is trying to help that there is a reason for
questions
they ask. If you need further help, please respond to the questions I
asked
in the previous posting.
All my fields are bound fields, so every data which I enter in this
fields
have been saved in my table. But, if I enter something in my form,
and
then
decide not to save this data, I manually delete data from fields,
and
when
I
close my form, and check the table I see that I have 1 empty row in
my
table.
I tried somthing with this IsNull function, but my form doesn't work
than,
maybe it is because my fields are bound?
:
Do you have code that saves the record as soon as it is created, or
anything
like that? You say you "delete everything from fields in the
form".
How
did the data get into those fields so that it was necessary to
delete
it?
Does pressing Esc twice eliminate the problem? If so, Undo can be
placed
into the code somewhere. For instance, in the form's Before Update
event
you could have something like:
If IsNull(Me.SomeField) Then
If MsgBox ("Cancel the record?",vbYesNo) = vbYes Then
Me.Undo
End If
End If
I know that empty row with asterisk represents new record. But my
empty
row
is not with asterisk, the only field in this row which is not
empty
is
ID
field (AutoNumber), but other columns (which are connected with
fields
on
my
form) are empty.
So, I have that empty row, and my next row has asterisk (this row
is
for
new
record). Than I have manually to delete this row from my table,
and
ID
already take next value.
:
As I understand it, pressing Esc once will clear the current
control;
pressing Esc twice is the same as Undo in VBA -- it clears all
fields
in
the
unsaved record).
A command button with Me.Undo as its click event is another way
to
clear
the
current record. However, it is not clear whether you have
entered
any
data
before you decide not to create a record. Does the empty row
have
an
asterisk at the left side? If so, that row represents the new
record,
and
will be there when you open the table in datasheet view.
However,
if
there
is a blank row other than that one you are saving the record.
Hy,
I have a question. When I open my form, but I decide not to
save
that
record, I delete everything from fields in form, but when I
close
my
form,
and open the table, I see that I have 1 empty row in my table.
Does anyone have idea how to aviod this empty row?