General information
Category:
Forms & Form designer
>>>nKeyCode = InKey()
>>>If nKeyCode = 24
>>> Insert Into GridTable(parent_id, otherparent_id) Values (Parent.parent_id, OtherParent.otherparent_id)
>>> ThisForm.Refresh
>>>EndIf
>>>
>>
>>Try putting a NODEFAULT() before the EndIf
>>and then going to the record.
>
>Okay, I added the "NODEFAULT" and it seemed to work
>to an extent, i.e. it added the correct parent_id number,
>but it also added an incorrect otherparent_id! But this
>is progress. I didn't quite understand what you meant
>when you said "and then going to the record." Please
>explain further. TIA --lincoln
What seems to be happening is that you are inserting two records,
one during the above code and one doing the grid's AllowAddNew
event. Turn off the grid's AllowAddNew event since your program
is personally handling the insert ( AllowAddNew=.f.).
If the application is a single user application, all you do
is have to issue a
SELECT childalias
GO BOTTOM
this.parent.gridname.refresh && Your in the ADD button
to get to the last record
(your inserted record).
If the child table has a primary key, substitute the
GO BOTTOM with a LOCATE FOR childkey=m.hcildkeyIncrement.
If the child table doesn't have a primary key, you've got
code that's a little more messy. Every one of my tables
always has a primary key (single fields only) to identify
every record. It makes life wonderfully uneventful. [g]
Previous
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only