[Résolu][Base] Fermer un formulaire automatiquement

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

[Résolu][Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Bonjour à tous,

J'explique mon (nième) soucis, j'aimerais que quand j'ouvre un formulaire via un bouton (code fonctionnel) le premier formulaire se ferme ainsi la navigation sera plus simple pour l'utilisateur.
J'ai essayé de bidouiller avec les aides qu'il y a sur ce suprême de code :http://user.services.openoffice.org/fr/ ... =15&t=6355 mais je n'ai réussi à rien.

Quelqu'un a t'il une idée ?

Voici le code de ma macro qui permet d'ouvrir un formulaire :

Code : Tout sélectionner

REM  *****  Ouvrir un formulaire et ferme l'ancien  *****

Sub OuvrirFormulaire(evt As Object)
   Dim dbDoc As Object, lesFormulR As Object, docFormulaire2 As Object
   Dim bouton As Object, nomFormulaire As String
   
   ConnecterSource() 'connection a la BDD
   
   bouton = evt.Source
   
   'on récupère le nom du formulaire à ouvrir qui se trouve dans le champ complément d'information du bouton
	nomFormulaire = bouton.Model.tag 
   
	dbDoc = ThisDatabaseDocument
	lesFormulR = dbDoc.FormDocuments
	
	If lesFormulR.hasByName(nomFormulaire) Then
		docFormulaire2 = lesFormulR.getByName(nomFormulaire)
		docFormulaire2.open
	Else
		MsgBox ("Formulaire inconnu : " & nomFormulaire, 16)
	End If
   
	DeconnecterSource() ' Deconnection de la BDD
End Sub

'*****************************************************************************************************
Dernière modification par masirkkisoi le 20 janv. 2012 12:53, modifié 1 fois.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Message par Piaf »

re Bonjour

ça devrait le faire

Code : Tout sélectionner

Sub OuvertureFermeture( oEvent as variant )

   ThisDatabaseDocument.FormDocuments.getByName( "nom_du_formulaire_à_ouvrir" ).open
   ThisDatabaseDocument.FormDocuments.getByName("nom_du_formulaire_à_fermer").close
   
end sub
tirer du suprême de code [Base]ouverture et fermeture d'un formulaire

A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Oui mais est-ce possible de généraliser la fermeture à n'importe quel formulaire ? Comme c'est le cas pour mon ouverture où il y a 1 macro pour tous les Forms.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25167
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Fermer un formulaire automatiquement

Message par Dude »

Salut,
masirkkisoi a écrit :Oui mais est-ce possible de généraliser la fermeture à n'importe quel formulaire ?
Et bien, tu passes le nom de ton formulaire en paramètre. Où est le problème ?
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Salut Dude,

je comprends mais comment récupérer le nom du formulaire courrent ? (celui où se trouve le bouton pour ouvrir le 2eme formulaire) J'ai lancé une recherche avec les mots clés : "récupérer nom formulaire" mais elle n'a pas aboutie.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Message par jeanmimi »

Le nom du formulaire courant, ou pas, est celui sous lequel tu l'as enregistré dans ta base.
En reprenant le code

Code : Tout sélectionner

REM ****** Ouverture et fermeture du formulaire "NouveauCompteMandatement") *****
Sub OuvertureFermetureNouveauCompteMandatement( oEvent as variant )

   ThisDatabaseDocument.FormDocuments.getByName( "NouveauCompteMandatement" ).open
   ThisDatabaseDocument.FormDocuments.getByName("NouveauCompteMandatement").close
   
end sub
REM ****** Ouverture et fermeture du formulaire "NouveauCompteOrdonnateur") *****
Sub OuvertureFermetureNouveauCompteOrdonnateur( oEvent as variant )

   ThisDatabaseDocument.FormDocuments.getByName( "NouveauCompteOrdonnateur" ).open
   ThisDatabaseDocument.FormDocuments.getByName("NouveauCompteOrdonnateur").close
   
end sub
etc ...
et tu affectes la bonne Macro au bouton à cliquer
Dernière modification par jeanmimi le 20 janv. 2012 08:41, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Ok donc si je comprend bien il faut que je fasse une macro "fermeture" pour chaque formulaire que je veux fermer ? Je voulais juste savoir s'il était possible d'en faire qu'une seule pour tous les formuliares.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Message par jeanmimi »

Oui, pour illustrer, j'ai inséré un bouton dans les 2 formulaires cités ci-dessus pour fermer le formulaire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Merci de te pencher sur mon problème mais ce n'est pas ce que je veux.

J'aimerais que le formulaire se ferme quand le 2eme s'ouvre et non un bouton fermer.

Désolée d'être exigente :? c'est possible que je m'exprime mal aussi... :(
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Message par jeanmimi »

J'aimerais que le formulaire se ferme quand le 2eme s'ouvre et non un bouton fermer
Ça doit être possible par Outils > Personnaliser et choisir l'Événement idoine, mais question : comment le formulaire qui s'ouvre va connaitre le nom de celui qui doit être fermé ?
Un clic sur un bouton te semble trop compliqué pour les utilisateurs ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Ce n'est pas le formulaire qui s'ouvre qui est concerné mais celui qui se ferme, non ? Car le bouton qui permet d'ouvrir le 2eme formulaire est sur celui qui doit se fermer.
jeanmimi a écrit :
Un clic sur un bouton te semble trop compliqué pour les utilisateurs ?
Ce n'est pas ça mais je trouve plus facile de naviguer quand la fenêtre se ferme au moment où l'on ouvre une nouvelle, comme par exemple quand tu ouvres "Poste de Travail" sur ton bureau et que tu clique sur C, la fenêtre Poste de Travail est remplacée par la fenêtre que tu viens d'ouvrir.
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)
pancho
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 13 janv. 2012 10:55

Re: [Base] Fermer un formulaire automatiquement

Message par pancho »

Bonjour,
Pour fermer un formulaire lorsque l'on clique sur un bouton, il existe une solution sans macro.
Dans les propriétés du bouton :
- Champ Action : choisir "ouverture d'un document ou d'une page web"
- Champ URL : .uno:CloseWin
LibreOffice v4.2.7 , Linux Mint 17 , PostgreSQL
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Message par jeanmimi »

Certes, mais ici, la demande est la fermeture automatique d'un formulaire ouvert lorsqu'un deuxième formulaire s'ouvre.
Donc, pas de bouton, mais j'aime bien ta solution sans Macro
Dernière modification par jeanmimi le 20 janv. 2012 11:46, modifié 1 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Message par Piaf »

Bonjour

peut être une solution donnée par jerome bourgeois dans http://user.services.openoffice.org/fr/ ... 26&t=18473

Code : Tout sélectionner

Sub OuvrirFormulaire(evt As Object) '*** assignée au déclenchement du bouton

	Dim lesFormulaires As Object, leFormulaire As Object
	Dim bouton As Object, appel As String, courant as String
	
	bouton = evt.Source
	appel = split(bouton.Model.tag,";",2)(0)
	if instr(1,bouton.Model.tag,";") then courant = split(bouton.Model.tag,";",2)(1)
	
	lesFormulaires = ThisDatabaseDocument.FormDocuments
	if lesFormulaires.hasByName(appel)  then
		leFormulaire = lesFormulaires.getByName(appel)
		leFormulaire.open
	else
	  	MsgBox("Formulaire inconnu : " & appel, 16)
	  	exit sub
	end if
	
	GererBarresOutils(appel)
	if thisDatabaseDocument.FormDocuments.hasByName(courant) then FermerFormulaire(courant)	
	
End Sub

Sub FermerFormulaire(nomFormulaire) '*** appelée par OuvrirFormulaire

	thisDataBaseDocument.FormDocuments.getByName(nomFormulaire).close

End sub
en renseignant le complément d'information du bouton avec le nom du formulaire à ouvrir, celui du formulaire à fermer séparer par un point virgule;
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16959
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Fermer un formulaire automatiquement

Message par jeanmimi »

du bouton
Ici, la demande est sans bouton
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] Fermer un formulaire automatiquement

Message par Piaf »

bonjour
masirkkisoi a écrit :quand j'ouvre un formulaire via un bouton
je parlais de ce bouton.

ce que j'ai compris de la demande:
on a un Bouton de commande sur un formulaire qui déclenche l'ouverture d'un second formulaire.
on voudrait que ce bouton déclenche effectivement l'ouverture du second formulaire et en plus ferme le premier.

mais j'ai peut être mal compris
 Ajout : un petit exemple Pour illustrer mon propos.
OvertureFermeture.odb
 
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Piaf le 20 janv. 2012 13:14, modifié 3 fois.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
masirkkisoi
Membre OOrganisé
Membre OOrganisé
Messages : 67
Inscription : 10 janv. 2012 15:20
Localisation : 2eme étoile à gauche aprés Tatooine

Re: [Base] Fermer un formulaire automatiquement

Message par masirkkisoi »

Non Piaf tu as tout à fait compris :wink: Encore mercis pour votre aide les gens je ne sais pas se que je ferais sans vous !

Je teste et je vous dis quoi. :D
 Ajout : Je viens de tester et je dis Amen ! :super: Merci beaucoup ça marche nikel chrome ! 
Il ne suffit pas d'avoir du talent. Il faut encore savoir s'en servir. (Alfonse Allais)

OpenOffice 3.2 Windows 2003 (configuration par obligation)