Luc,
The source of the problem is that Ges_Prod is defaulting to a PRIVATE memvar of the function. When the function ends the memvar goes out of scope and thus destroys the form. So Ges_Prod will have to have a lifetime scope of the routine calling GesProd or assigned to some other global as Ed suggests.
>function GesProd()
> SET CLASSLIB TO LIBS\FORMS ADDITIVE
> Ges_Prod = createobject("forms.Ges_Prod",zn_Aff)
> Ges_Prod.show
>endfunc
>
>How can I do if I want that my form "GES_PROD" stay visible? I need to use it modeless...