Page 1 sur 1

[Résolu][Base] Ouvrir un formulaire au lancement

MessagePublié: 21 Juin 2021 10:32
par jjber

La modération vous a écrit: Nous avons supprimé les termes inutiles dans le titre de votre question


Bonjour
Est-il possible, au lancement de Libre Office, de provoquer l'ouverture automatique d'un formulaire d'une BD ?
Merci d'avance

Re: Ouvrir directement un formulaire au lancement de Libre O

MessagePublié: 21 Juin 2021 10:42
par tintin

Re: Ouvrir un formulaire au lancement

MessagePublié: 21 Juin 2021 10:51
par jjber
Je sais comment ouvrir automatiquement un formulaire à l'ouverture d'une Base de Données par une macro.
Ma question était d'obtenir ce résultat (ouverture d'un formulaire) au lancement de Libre Office ...
Mais ce n'est peut être possible ?

Re: Ouvrir un formulaire au lancement

MessagePublié: 21 Juin 2021 11:01
par tintin
Voyez ici s'il il y la réponse à votre question.

[Résolu] Ouvrir un formulaire au lancement

MessagePublié: 22 Juin 2021 14:09
par jjber
J'apporte une réponse à cette question pour en faire profiter la communauté.

Si la base est référencée (Outils▸Options▸Base▸Base de données) tu peux associer une macro à l'ouverture de l'application par Outils▸Personnaliser▸onglet Événements▸Démarrer l'application. Il faut naturellement que la macro figure dans la librairie Standard de Mes macros (ou dans une autre librairie chargée).

Exemple de macro ouvrant un formulaire nommé "biblio" dans la source de données Bibliography

Code : Tout sélectionner   AgrandirRéduire
global oConnexion as object

sub PysOuvrirForm()
dim oForms as object, oForm as object
dim ptFichier(2) as new com.sun.star.beans.PropertyValue

oConnexion = ConnecterSource

oForms = oConnexion.Parent.DataBaseDocument.FormDocuments

ptFichier(0).Name = "ActiveConnection"
ptFichier(0).Value = oConnexion
ptFichier(1).Name = "OpenMode"
ptFichier(1).Value = "open"

oForm = oForms.loadComponentFromURL("biblio", "", 0, ptFichier())
oForm.CurrentController.Frame.ContainerWindow.toFront

end sub

Function ConnecterSource()
Dim sNomSource As String, sLogin As String, sPassword As String
Dim oSource As Object, oDbContext As Object

sNomSource = "Bibliography"
oDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oSource = oDbContext.getByName(sNomSource)

sLogin = ""
sPassword = ""
oConnexion = oSource.getConnection(sLogin, sPassword)

if IsNull(oConnexion) then
  MsgBox("Connexion impossible", 16)
  Stop
end if
ConnecterSource = oConnexion
End Function


Merci au contributeur qui m'a fourni cette macro qui me permet de clôturer cette question

Re: [Résolu] Ouvrir un formulaire au lancement

MessagePublié: 23 Juil 2021 13:52
par rollmops
Bonjour,

Juste une précision
jjber a écrit: Il faut naturellement que la macro figure dans la librairie Standard de Mes macros (ou dans une autre librairie chargée).

Il faut également autoriser les macros dans Outils▸Options▸OpenOffice▸Sécurité
Sans quoi tu auras irrémédiablement ce symptôme :
https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=64207