Date: prev next · Thread: first prev next last
2025 Archives by date, by thread · List index


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 à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.