[Résolu] [Base] Ouvrir un lien vers un autre formulaire dans un fichier ODT

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 !
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

[Résolu] [Base] Ouvrir un lien vers un autre formulaire dans un fichier ODT

Message par cegtio »

Bonjour la Communauté,

J'aimerais ouvrir mon formulaire dans un fichier ODT plutôt que de passer ma base de données (fichier ODB).

Dans ce formulaire j'ai un bouton sur lequel j'appelle (via une macro) un autre formulaire de cette même base de données. Voici le contenu de la macro :

Code : Tout sélectionner

Sub OpenForm_PRESTATIONS
const sNewDocumentName="PRESTATIONS"
oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open
End Sub
Hélas, cela n'ouvre pas le second formulaire et j'ai le message d'erreur suivant :

Code : Tout sélectionner

Une erreur de structure de script s'est produite lors de l'exécution du script vnd.sun.star.script:Standard.OpenForm.OpenForm_PRESTATIONS?language=Basic&location=document en Basic.

Message : The following Basic script could not be found:
library: 'Standard'
module: 'OpenForm'
method: 'OpenForm_PRESTATIONS'
location: 'document'
Je comprends qu'il ne parvient pas à trouver le script de la macro. Mais je ne sais pas comment l'aider à le trouver. Et surtout je ne sais pas comment rendre cet autre formulaire accessible ?

Accepteriez-vous de m'aider ?

Merci bien et bonne fin de journée.
Dernière modification par cegtio le 26 avr. 2023 16:55, modifié 2 fois.
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Comment ouvrir un lien vers un autre formulaire dans un fichier ODT ?

Message par Dude »

Salut,
cegtio a écrit : 16 avr. 2023 20:09 oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open
Comment veux-tu que cela fonctionne ? Un ODT ne connaît pas ThisDatabaseDocument.
Tu devrais installer XRay pour voir les propriétés et méthodes des objets que tu appelles.

Qu'est ce que tu cherches à faire exactement ?
S'il s'agit de rendre ton ODB autonome, tu as ce fil : viewtopic.php?t=45997
Cette documentation n'a jamais été terminée par les bénévoles, ton aide est donc la bienvenue.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Base] Comment ouvrir un lien vers un autre formulaire dans un fichier ODT ?

Message par jeanmi2403 »

Bonsoir,
Comme je l'ai signalé dans ton fil précédent :

Code : Tout sélectionner

Sub OuvrirFormulaire
   stDir = "I:\TrvOpen\Projets\Dépannage-Forum\Bases\" ' Dossier de la base (chez moi)
   stDir = ConvertToUrl(stDir & "Mabase.odb") ' Nom de la base
   oContexteBase = createUnoService("com.sun.star.sdb.DatabaseContext") ' Création du service
   oSourceDonneesCible = oContexteBase.getByName(stDir) 'objet base de données
   oSourceDonneesCible.DatabaseDocument.FormDocuments.getbyname("MonFormulaire").open
Cordialement,
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Ouvrir un lien vers un autre formulaire dans un fichier ODT

Message par jeanmimi »

Bonjour,
cegtio a écrit : 16 avr. 2023 20:09 J'aimerais ouvrir mon formulaire dans un fichier ODT plutôt que de passer ma base de données (fichier ODB).
À lire les messages que tu as postés, j'ai l'impression que tu as déjà eu la réponse par Dude, ce qui mène à ce fil qui explique, peu-être de façon lapidaire, j'en conviens, comment faire :
viewtopic.php?t=3850
En pratique, ce n'est pas le formulaire de la Base qui cherche à se connecter à un formulaire .odt extérieur, mais l'inverse, le formulaire extérieur qui se connecte à la Base.

Tu avais aussi expliqué que tu préférais utiliser un formulaire extérieur à Base pour éviter de perdre les Tables de ta Base. L'expérience du forum montre qu'il y a deux façons principales pour perdre une Base (Tables, Formulaires et Rapports), c'est de travailler sur une Base stockée dans une clé USB d'une part et/ou d'autre part d'y stocker des images ou des photos.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: [Base] Ouvrir un lien vers un autre formulaire dans un fichier ODT

Message par cegtio »

Merci beaucoup pour votre aide.
Vos réponses sont très précieuses pour le novice que je suis !!
LibreOffice 7.5 sous MacOS 10.15.7