Information générale
Catégorie:
Gestionnaire d'écran & Écrans
>>>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]
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement