J'ai une base de données pour le catalogue des œuvres d'un peintre. Elle comprend une Table et un Formulaire principal pour présenter chaque oeuvre.
Le formulaire a un contrôle Image mais les photos des œuvres ne sont pas incorporées dans la base.
la base de données fonctionne actuellement sous MSAccess et la navigation entre les œuvres dans le formulaire est faite avec 4 boutons.
je voudrais transposer la base dans BaseLibreOffice car les futurs utilisateurs n'auront sans doute pas Access.
J'ai donc un fichier .odb comprenant une Table et un Formulaire (+ un formulaire texte secondaire).
Pour naviguer dans le formulaire je ne peux utiliser la barre de navigation de LibreOffice car je dois intégrer l'affichage de l'image pour chaque enregistrement.
J'ai commencé par mettre un bouton pour passer à l'enregistrement Suivant avec une macro en utilisant Access2Base qui me parait plus simple puisque j'ai programmé en VBA sous Access. pour ce bouton j'ai donc une macro qui bute sur la dernière ligne le GoToRecord.
j'ai essayé plusieurs configuration en utilisant les indications du site Access2Base, mais j'obtiens les erreurs 448 ou 1503 concernant les arguments de la commande qui manquent ou ne conviennent pas.
Je cherche des lumières auprès des utilisateurs de ce forum que je remercie d'avance pour leurs réponses.
je joins ci-après le code qui se trouve dans le module lié au document :
Il y a 3 macros :
la 1ère est demandée par Access2Base
la 2e concerne le formulaire texte non concerné
la 3e est celle concernée par le sujet, il y a 2 configurations de commande alternée suivant la quote.
je peux envoyé le fichier .odb mais il fait 540 Ko pour une limite de 500 Ko.
Excusez-moi pour les erreurs éventuelles. Merci
Code : Tout sélectionner
Option Explicit
Option Compatible
Option VBASupport 1
Sub DBOpen(Optional poEvent As Object)
If GlobalScope.BasicLibraries.hasByName("Access2Base") Then
GlobalScope.BasicLibraries.loadLibrary("Access2Base")
End If
Call Application.OpenConnection(ThisDatabaseDocument)
End Sub
Sub OuvrirAccueil
Dim F_Accueil as Object, maConnection as Object
ThisDatabaseDocument.CurrentController.connect()
maConnection = ThisDatabasedocument.CurrentController.ActiveConnection
ThisDatabaseDocument.FormDocuments.getByName( "F_Accueil" ).open
End Sub
Sub EnrSuivant
Dim F_CatalogueOeuvres as String
Dim maConnection as Object
Dim acDataForm as Object
'Dim acnext as Object
'Const acDataForm = 2
Const acnext =1
ThisDatabaseDocument.CurrentController.connect()
maConnection = ThisDatabasedocument.CurrentController.ActiveConnection
'DoCmd.GoToRecord ( acDataForm, "F_CatalogueOeuvres", , acNext)
DoCmd.GoToRecord ( , , acnext )
End Sub
]