[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 !

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

Messagepar JPLUNUS » 14 Avr 2021 19:07

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   AgrandirRéduire
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é 10 fois
mut1.pdf
fichier lien
(83.24 Kio) Téléchargé 11 fois
auteur1.pdf
fichier lien
(118.47 Kio) Téléchargé 13 fois
Dernière édition par JPLUNUS le 15 Avr 2021 20:10, édité 3 fois.
LibreOffice 7.1.2.2(x64) sous Windows 10 famille 19041 et Java 1.8.0_291-b10
JPLUNUS
Membre lOOyal
Membre lOOyal
 
Message(s) : 32
Inscrit le : 07 Sep 2010 21:58

Re: BASE HSQL Basic bouton hyperlien sous formulaire

Messagepar jeanmimi » 14 Avr 2021 20:40

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é 19 fois

Dans cette section du forum, la balise Base devait être entre crochets [Base]
LibreOffice : Version : 7.1.2.2 (x64)(5 mai 2021)
Adoptopen JRE ou Oracle JRE (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15905
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] HSQL bouton hyperlien sous formulaire

Messagepar JPLUNUS » 15 Avr 2021 16:20

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
 
Message(s) : 32
Inscrit le : 07 Sep 2010 21:58

[Solution] [Base] HSQL bouton hyperlien sous formulaire

Messagepar JPLUNUS » 15 Avr 2021 20:07

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
JPLUNUS
Membre lOOyal
Membre lOOyal
 
Message(s) : 32
Inscrit le : 07 Sep 2010 21:58


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)