Bonsoir,

Il faut considérer que la base n'est pas ouverte, il va donc falloir ouvrir la connexion. Je te transmets ce que j'ai fait (fonctionnel !) en adaptant le code fourni par Pierre-Yves Samyn sur  Ask.Libreoffice.

Car le code que j'avais fait avec oConnexion.Parent.DatabaseDocument.formDocuments.getByName("FichePerso").Open Ne fonctionne pas, le système me dit qu'il n'y a pas de connexion à la base de données !!!
Si quelqu'un a une idée ?

Il suffira d'adapter les noms de fichier et de formulaire

--------------------------------------

global oConnexion as object

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

oConnexion = ConnecterSource

oForms = oConnexion.Parent.DataBaseDocument.FormDocuments

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

oForm = oForms.loadComponentFromURL("FichePerso", "", 0, oParamFichier())
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 = ConvertToURL ("I:\TrvOpen\Projets\Dépannage-Forum\Bases\BD-Exemple.odb")
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

-----------------------------------------------------

Le 28/08/2025 à 20:04, Claude Sarcey a écrit :
Bonjour,
Je suis sur Mac avec Séquoia 15.6.1.
J’ai développé une base données qui fonctionne plutôt bien avec LibreOffice 
25.2.3.2 (AARCH64).
Ma base est essentiellement constituée de requêtes et de formulaires.
J’ai formulaire « menu » qui fait office de menu 😂. Quand j’exécute ce 
formulaire, tout se passe bien, le menu apparaît et j’ai accès à tout ce qu’il 
me propose.
J’ai souhaité qu’à l’ouverture de la base, le menu se lance automatiquement.
Pour ce faire je suis allé dans outils/personnaliser
Onglet : Événements
Choix macro : ouvrir-menu
Contenu de la macro :

Sub ouvrir_menu
const FormulaireAouvrir ="Menu"
ThisDatabaseDocument.FormDocuments.getbyname(FormulaireAouvrir).open
End Sub

Quand je lance ma base en double cliquant sur son nom dans l’explorateur, j’ai 
2 erreurs :

La première en forme de pop up : Récupération de document LibreOffice 25.2
En raison d’une erreur, LibreOffice a planté. Tous les fichiers sur lesquels 
vous travaillez vont être enregistrés. La prochaine fois que LibreOffice sera 
lancé, les fichiers seront automatiquement récupérés.
Quand je fais OK (seule possibilité), seconde erreur :

Même titre que la première : je peux sélectionner le nom de ma base et cliquer 
sur « récupérer la sélection ».

Ma base se lance sans afficher le menu.

Si quelqu’un a une idée je suis preneur.

Merci d’avance.

Claude Sarcey-,
Envoyé de mon GSM.

--


       Jean-Michel COSTE

--
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Répondre à