[Résolu] [Base] Navigation dans formulaire via Access2Base

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 !
Platon1
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 21 avr. 2020 16:32

[Résolu] [Base] Navigation dans formulaire via Access2Base

Message par Platon1 »

Bonjour,

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
]
Dernière modification par Platon1 le 26 avr. 2020 13:07, modifié 1 fois.
LibreOffice 6.3.5 sur W10(64)
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Access2Base] BASE Navigation dans formulaire

Message par Bidouille »

Bonsoir,

Titre modifié : veillez à ne pas inventer votre propre système de balisage.
Relisez le bandeau rouge en haut de la page.
LibreOffice 6.4.2.2 sur W10(64)
Sur ce forum, nous ne recommandons pas l'usage de version expérimentale :
Soyez à jour des dernières versions disponibles

Purgez votre profil et installez une version stable.
Platon1 a écrit :je peux envoyé le fichier .odb mais il fait 540 Ko pour une limite de 500 Ko.
Il vous appartient de fabriquer un fichier de moins de 500 Ko.
Il suffit d'en supprimer les éléments non essentiels.
D'ailleurs en faisant cet exercice, il y a de grandes chances que vous résolviez par vous-même votre problème.
Platon1
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 21 avr. 2020 16:32

Re: [Base] Navigation dans formulaire via Access2Base

Message par Platon1 »

Bonjour,

effectivement, je charge toujours la version stable recommandée mais sur le site de téléchargement
j'ai été étonné de ne pas trouver les 2 versions habituelles stable et avancée.
La modification est faite.

Bonne journée.
LibreOffice 6.3.5 sur W10(64)
JPL
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 17 mars 2012 10:16

Re: [Base] Navigation dans formulaire via Access2Base

Message par JPL »

Bonjour,

il manque en effet un fichier comme exemple pour pouvoir donner un conseil définitif.

Je vois toutefois dans le code fourni 2 erreurs, au moins:

(1) acDataForm et acNext sont tous deux des constantes, pas des objets.
(2) Dans la ligne DoCmd avec apostrophe, il y a une virgule de trop avant acNext

Merci de tester si cela change quelque chose puisque je ne peux pas le faire moi-même.

Au plaisir.
JPL
Kubuntu 22.04 / LibO 7.6
Access2Base (LibO).
BaseDocumenter extension (LibO)
ScriptForge (LibO) - Documentation on https://help.libreoffice.org/latest/en- ... bPAR=BASIC
Platon1
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 21 avr. 2020 16:32

Re: [Base] Navigation dans formulaire via Access2Base

Message par Platon1 »

Catalogue des oeuvres0 - Copie.odb
Bonjour
et merci à JPL

Ce matin, j'ai fait les modifications et lancé la Macro en pas à pas, à la fin l'exécution a continué sur GoToRecord que je n'ai pas conduite en pas à pas jusqu'à la fin mais qui s"est terminé par le message "pas de connexion active trouvée".
J'ai repris cet après-midi et cette fois la macro "EnrSuivant" s'est arrêtée à la dernière ligne avec le message "erreur d'exécution Basic - 12 - DoCmd";
12 est pour "variable d'objet non définie".
En fin de compte je ne sais pas où est l'erreur.
je joins une copie de la base de données dont j'ai enlevé une table pour diminuer la taille.

Merci pour votre aide.
Bonne journée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 6.3.5 sur W10(64)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Navigation dans formulaire via Access2Base

Message par Dude »

Salut,

Pas compris l'objectif de ton ODB.

Base permet via un assistant de générer un formulaire parfaitement fonctionnel :
Capture.PNG
Donc nul besoin d'une macro pour naviguer dans les données d'une table.
La barre d'outils en bas du formulaire remplit parfaitement son office.


.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Navigation dans formulaire via Access2Base

Message par jeanmimi »

Bonjour,
Platon1 a écrit :J'ai commencé par mettre un bouton pour passer à l'enregistrement Suivant avec une macro...
Dans Base, il n'y a pas besoin de Macro puisque c'est une des propriétés du Contrôle Bouton.
Pour y accéder, faire un clic droit sur le Bouton lorsque le formulaire est en Mode Edition, puis dans la propriété Action, choisir dans la liste déroulante "Enregistrement suivant".
Un autre Bouton peut être créé pour aller à l'Enregistrement précédent.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Platon1
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 21 avr. 2020 16:32

Re: [Base] Navigation dans formulaire via Access2Base

Message par Platon1 »

Bonjour Dude

merci pour la réponse mais

je suis d"accord pour les contrôles présentés sauf qu'il n'y a pas le contrôle Image et qu'il faudra appeler des images qui sont dans un dossier hors de la base.

Je ne vois pas comment je peux naviguer avec la barre de navigation intégrée et à chaque changement de Record appeler le fichier Image qui convient.
S'il y a une solution je veux bien l'adopter. Merci.
LibreOffice 6.3.5 sur W10(64)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Base] Navigation dans formulaire via Access2Base

Message par jeanmimi »

Platon1 a écrit :je suis d"accord pour les contrôles présentés sauf qu'il n'y a pas le contrôle Image et qu'il faudra appeler des images qui sont dans un dossier hors de la base.
Comme il s'agit d'une autre question, i vaut mieux ouvrir un nouveau fil, ou bien trouver la réponse dans le forum car elle a été traitée à plusieurs reprises.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Platon1
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 21 avr. 2020 16:32

Re: [Base] Navigation dans formulaire via Access2Base

Message par Platon1 »

Bonjour,

je vais mettre résolu, mais la question suivant le titre n'a pas été traitée.
les réponses concernent la navigation dans un formulaire, sans macro pour cette action.
il y a alors 3 possibilités ;
-la barre de navigation présente normalement sous le formulaire
-le contrôle barre de navigation que l'on positionne dans un formulaire
-des contrôles boutons auxquels on attribue à chacun une des actions de la barre de navigation à l'aide de la propriété "action".

Je reviendrai peut-être à propos de l'importation d'images.

Merci pour les réponses.
Bien à vous.
LibreOffice 6.3.5 sur W10(64)
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9255
Inscription : 28 août 2010 08:45

Re: [Base] Navigation dans formulaire via Access2Base

Message par micmac »

Bonjour,

Problème résolu ?

Il est d'usage
  1. d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets [ ])
  2. et de cocher l'icône Image
Image
Adaptez la longueur du titre à 60 caractères maximum, balises comprises.

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac