[Résolu] [Base] HSQL bouton hyperlien sous formulaire

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 !
JPLUNUS
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 07 sept. 2010 22:58

[Résolu] [Base] HSQL bouton hyperlien sous formulaire

Message par JPLUNUS »

Bonjour à tous,

Pour commencer:
- toutes mes excuses aux modérateurs, pour mon erreur sur le choix du thème;
- un grand Merci à Pierre Yves SAMYN pour le fichier BD hyperlien.odb.
[ajout- un grand à jeanmimi pour sa réponse][/ajout]
 Ajout : Jeanmimi à écrit:
Dans le premier fichier que tu as joint, il n'y a pas de Macro et donc pas de Module4
J'ai modifié le fichier et joins les macros à celui-ci
les nouveaux modules sont:
Module1 pour le sous formulaire (présente le problème)
Module2 pour formulaire principal (fonctionne) 
Bien qu'ayant migré vers Firebird, je suis revenu vers HSQL à cause de la gestion
des sous-formulaires.

Dans le formulaire NewDocument (formulaire principal) lié à macro module2.
Les boutons "Ouvrir document" fonctionnent tous les trois.

Dans le formulaire F_Encodage (avec sous formulaire) lié à macro module4.
Les boutons "Ouvrir document" ne fonctionnent pas, message d'erreur:
Erreur d'exécution BASIC
Une exception s'est produite: Type: com.sun.star.container.NoSuchElementExceptionMessage:

Au cas où il y aurait encore un problème d'accès aux macros, voici le code qui pose problème.

Code : Tout sélectionner

Sub AuteurLien

Dim monDocument As Object
Dim lesFormulaires AS Object, unFormulaire As Object, unSousFormulaire As Object
Dim monCtrl As Object
Dim sv As Object
Dim Adresse As String
Dim fichier As String

monDocument = thisComponent
lesFormulaires = monDocument.DrawPage.Forms
unFormulaire = lesFormulaires.getByName("Formulaire principal")
unSousFormulaire = unFormulaire.getByName("Sous formulaire")
monCtrl = unSousFormulaire.getByName("InvAutDocLien")
Adresse = monCtrl.Text
sv = createUnoService("com.sun.star.system.SystemShellExecute")
sv.execute(Adresse, "",0)

End Sub
1) Comment sortir de cette impasse ?

Dans SuiviSoinsSanté.odb
L'enregistrement ID INV 8 contient des liens mut1 et auteur1 à mettre sur le Bureau
Chaque macro bloque sur la même ligne:
Pour Sub AuteurLien
monCtrl = unSousFormulaire.getByName("InvAutDocLien")
Pour Sub MutuelleLien
monCtrl = unSousFormulaire.getByName("InvMutIndemLien")
Pour Sub AssureurLien
monCtrl = unSousFormulaire.getByName("InvAssIndemLien")

2) Comment faire en sorte de n'avoir plus qu'une macro pour gérer les 2 formulaires ?

Très impatient de lire vos commentaires et de savoir où je me suis trompé.

Jplunus
Pièces jointes
SuiviSoinsSanté.odb
Nouveau fichier avec macros liées
(71.26 Kio) Téléchargé 58 fois
mut1.pdf
fichier lien
(83.24 Kio) Téléchargé 57 fois
auteur1.pdf
fichier lien
(118.47 Kio) Téléchargé 60 fois
Dernière modification par JPLUNUS le 15 avr. 2021 21:10, modifié 3 fois.
LibreOffice 7.1.2.2(x64) sous Windows 10 famille 19041 et Java 1.8.0_291-b10
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: BASE HSQL Basic bouton hyperlien sous formulaire

Message par jeanmimi »

Bonjour,
Dans le premier fichier que tu as joint, il n'y a pas de Macro et donc pas de Module4
Pour ouvrir un formulaire par clic sur un Bouton, je préfère la Macro OuvrirParTag proposée dans le Forum, car elle va fonctionner pour tous les Boutons, en ajoutant le nom du formulaire à ouvrir dans Complément d’information comme expliqué dans le forum.
SuiviSoinsSanté.odb
(71.93 Kio) Téléchargé 62 fois
Dans cette section du forum, la balise Base devait être entre crochets [Base]
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
JPLUNUS
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 07 sept. 2010 22:58

Re: [Base] HSQL bouton hyperlien sous formulaire

Message par JPLUNUS »

Jeanmimi,
bonjour et merci pour la réponse.
J'ai tenu compte de votre remarque et le sujet a été complété.
Le fichier .odb à été remplacé par un nouveau, les macros étant jointes au fichier(j'espère).
Par prudence, j'ai aussi ajouté le code.
J'espère avoir été complet et maintenant, je vais me concentrer sur votre proposition "OuvrirParTag".
Je notifierai par la suite la solution retenue comme souhaité.
jplunus
LibreOffice 7.1.2.2(x64) sous Windows 10 famille 19041 et Java 1.8.0_291-b10
JPLUNUS
Membre lOOyal
Membre lOOyal
Messages : 32
Inscription : 07 sept. 2010 22:58

[Solution] [Base] HSQL bouton hyperlien sous formulaire

Message par JPLUNUS »

Bonjour à tous,
je viens de mettre la main sur mon erreur.

Dans le formulaire
NewDocument, le champ contenant le lien s'appelle InvAutDocLien, il s'agit du Nom dans l'onglet Général (et pas le Champ de données de l'onglet Données)

Dans le formulaire
F_Encodage, le champ contenant le lien s'appelle txtInvAutDocLien et pas InvAutDocLien qui est le Champ de données de l'onglet Données.

Maintenant, je vais rassembler les 6 macros et en faire 3 avec un peu de chance.
jplunus
LibreOffice 7.1.2.2(x64) sous Windows 10 famille 19041 et Java 1.8.0_291-b10
Verrouillé