MS Access Forum / Forms / April 2008
don't save empty row in table
|
|
Thread rating:  |
Smoki - 07 Apr 2008 10:35 GMT 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?
tedmi - 07 Apr 2008 12:18 GMT Press Esc to clear all input fields, then close the form
 Signature TedMi
BruceM - 07 Apr 2008 15:39 GMT 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? Smoki - 08 Apr 2008 15:20 GMT 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 [quoted text clipped - 11 lines] > > 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? BruceM - 08 Apr 2008 15:33 GMT 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 [quoted text clipped - 27 lines] >> > 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? Smoki - 09 Apr 2008 09:04 GMT 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 [quoted text clipped - 40 lines] > >> > 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? BruceM - 09 Apr 2008 12:16 GMT 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 [quoted text clipped - 58 lines] >> >> > 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? Smoki - 09 Apr 2008 13:02 GMT 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 [quoted text clipped - 72 lines] > >> >> > 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? BruceM - 09 Apr 2008 13:57 GMT 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: [quoted text clipped - 116 lines] >> >> >> > 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? Smoki - 09 Apr 2008 14:19 GMT I tried it, but it said Compile error in this row:
(Me.SomeField)
I have some problems with this. Do I have instead of SomeField to put the name of my field, for example (Me.Location). I suppose this is the stupide question, but I don't know what to do!
> Since you aren't willing to try my Undo suggestion there is nothing more I > could have done anyhow. Good luck. [quoted text clipped - 119 lines] > >> >> >> > 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? BruceM - 09 Apr 2008 14:34 GMT There are some conventions in common use in these groups, such as referring to something such as SomeField and expecting people to know they should substitute an actual field name, but it is easy to forget that some of this stuff is by no means intuitive. Yes, you need the name of an actual field from the form's record source. The idea is that it is a field that *must* be filled in. For instance, in a Contacts table the LastName field would be required. Without it there probably isn't much point to creating a record, so that is a field you could check. The code would go into the form's Before Update event. Let me know if you need guidance to put it in place.
>I tried it, but it said Compile error in this row: > [quoted text clipped - 151 lines] >> >> >> >> > 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? Smoki - 09 Apr 2008 14:47 GMT You 're right!!! Thank you so much, it 's finnaly works!
> There are some conventions in common use in these groups, such as referring > to something such as SomeField and expecting people to know they should [quoted text clipped - 162 lines] > >> >> >> >> > 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? NetworkTrade - 08 Apr 2008 03:30 GMT consider adding a conditional me.dirty=true to the close event
something along the line
If IsNull(me.AVeryKeyField) then me.dirty=true End If
 Signature NTC
> 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? Smoki - 09 Apr 2008 09:23 GMT It looks ok, but what do you mean by this (me.AVeryKeyField) ??? Do I have to put instead of me.AVeryKeyField all my fields???
> consider adding a conditional me.dirty=true to the close event > [quoted text clipped - 9 lines] > > 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? Smoki - 09 Apr 2008 09:24 GMT It looks ok, but what do you mean by this (me.AVeryKeyField) ??? Do I have to put instead of me.AVeryKeyField all my fields???
> consider adding a conditional me.dirty=true to the close event > [quoted text clipped - 9 lines] > > 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?
|
|
|