[EMAIL PROTECTED] a écrit :

>Bonjour, 
>
>J'ai lu avec attention le fil de discussion concernant " fichier .lck aprés 
>fermeture de Obase", car j'ai un soucis identique (que j'avais déjà exposé 
>mais qui je crois nécéssite un nouveau fil de discusson pour une meilleure 
>compréhension)
>
>J'ai utilisé la macro suivante pour ouvrir un formulaire depuis un autre 
>(merci à Christine Brou):
>
>Sub OuvrirFormA()
>dim optFichier(2) as new com.sun.star.beans.PropertyValue
>
>monDoc = thisComponent
>lesForm = monDoc.Parent.FormDocuments
>monForm = lesForm.getByName("FORM_A") 'formulaire à ouvrir
>
>optFichier(0).Name = "ActiveConnection"
>optFichier(0).Value = monDoc.Parent.DataSource.getConnection("","")
>optFichier(1).Name = "OpenMode"
>optFichier(1).Value = "open"
>
>lesForm.loadComponentFromURL(monForm.Name, "", 0, optFichier())
>monDoc = lesForm.loadComponentFromURL(monForm.Name, "", 0, optFichier()
>
>call FullOn(monDoc) 'macro qui met le formulaire "form_A" ouvert en mode plein 
>écran
>
>End Sub
>
>donc la connexion est bien ouverte lorsque le formulaire "form_A" s'ouvre. 
>Mon probléme est que la connexion reste ouverte lorsque je ferme le formulaire 
> "form_A".
>Comment puis-je donc fermer la connexion ? Cela doit-il intervenir dans la 
>même macro qui ouvre le formulaire (si oui la connexion serat toujours active 
>)ou lors de la fermeture de celui-ci ?
>
>Merci d'avance
>
>Arnaud POUSSIER
>Windows Xp Pro - OpenOffice V2.0.2
>
>et meilleurs voeux à toute la liste
>
>
>
>  
>
Une indication qui n'est peut-être pas inutile. Il n'est pas nécessaire
d'établir une nouvelle
connexion à la base quand on ouvre un autre formulaire à partir d'un
formulaire principal.
Pour ma part j'utilise la même connexion et je laisse le soin à open
office de la terminer
quand je quitte le formulaire principal.
le code se présente ainsi :

oDocinit = ThisComponent                                            'Le
document writer qui contient le formulaire principal
DB_URL = oDocInit.Parent.URL                                      'l'URL
de la base, d'où "parent"
oDBForms = oDocInit.Parent.getFormDocuments            'Les documents
writer internes où sont les formulaires
oFormCont = oDBForms.getByName("Contacts")                  'Celui du
formulaire principal
oPageInit =
oDocInit.DrawPage                                              'La page
où est le form principal
oInitForm = oPageInit.Forms.getByName("MainForm")          'Le
formulaire principal
oConnect = oInitForm.ActiveConnection                                
'Son objet connexion
Args(0).Name = "OpenMode"
Args(0).Value = "open"
Args(1).Name = "ActiveConnection"
Args(1).Value =
oConnect                                                         'Sa
réutilisation

sFormTit =
"Adresses"                                                             
'Autre document à charger pour
                                                                                
                   
'accéder à un autre formulaire

oDocTit = oDBForms.LoadComponentFromURL(sFormTit, "_blank", 0 , Args())
             'Le document est chargé avec partage de la connexion

Plus besoin de fermer une connexion en sortant du formulaire secondaire
puisqu'on l'utilise
toujours dans le formulaire principal. De plus c'est la connexion
établie à l'ouverture du
document base. Elle se ferme proprement dès que l'on quitte le document
ouvert dans OO.

Espérant avoir aidé

Jean-Marc




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à