4 messages in org.openoffice.fr.progRe: [prog] Fermer connexion Obase
FromSent OnAttachments
Arnaud POUSSIERJan 9, 2007 2:15 am 
JMD Jean-Marc DelmasJan 9, 2007 5:12 am 
Arnaud POUSSIERJan 9, 2007 8:40 am 
Vincent MAILLEJan 9, 2007 10:38 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Fermer connexion ObaseActions...
From:JMD Jean-Marc Delmas (jean@centraliens.net)
Date:Jan 9, 2007 5:12:36 am
List:org.openoffice.fr.prog

arna@douane.finances.gouv.fr 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