Le 10/10/06, MORTEVEILLE Roselyne - DDE 44/GER/Voies Rapides < [EMAIL PROTECTED]> a écrit :
Merci Manuel pour ta réponse, mais après cet arrêt long de travail sur ma base, je recommence. J'ai copié ton modèle de macro pour filtrer mes données dans mon formulaire, et j'ai suivi ta manip. _/1 - créer un formulaire tout simple lié à la table que tu veux consulter (t_depverte) 2 - avec le navigateur de formulaire, note le nom du formulaire principal 3 - en mode édition de formulaire, rajoute un champ texte et de même note son nom 4 - depuis la fenêtre du formulaire : Outils > Macros > Gérer les macros > OpenOffice.org Basic sélectionne le noeud qui porte le nom du fichier formulaire, puis Standard , puis nouveau, tu peux garder le nom par défaut :Module 1 5 - Copier la macro / _*Sub fabriqueFiltreFormulaire(oEvent As Object) Dim oDataForm As Object Dim strFiltre As String Dim strNomForm As String Dim strNomChamp As String strNomForm = "f_modification_depverte" 'ici, mettre le nom du formulaire principal strNomChamp = "recherche" 'ici mettre le nom du champ qui sert de critère de filtrage oDataForm = thiscomponent.drawpage.Forms.getByName(strNomForm) strFiltre = strNomChamp & " LIKE '" & oEvent.Source.Text & "%'" oDataForm.Filter = strFiltre oDataForm.reload End Sub * /6 - sauvegarde de la macro 7 - en mode édition de formulaire, clic droit sur le champn de texte, onglet événements, assigner fabriqueFiltreFormulaire à l'événement Texte modifié 8 - sauver le formulaire, l'ouvrir en mode utilisation, le texte que tu rentre dans le champ sert à filter les enregistrements affichés (normalement) 9 - pour voir tous les enregistrements, effacer le texte présent dans le champ de filtrage. / Seulement voilà j'ai un message d'erreur après avoir tapé ma recherche et avoir validé,* l'erreur est sur la ligne oDataForm = thiscomponent.drawpage.Forms.getByName(strNomForm) Runtime error Basic Exception Type:com.sun.star.container.NoSuchElementException Message:. OK * Peux-tu une nouvelle fois m'aider.
tu peux essayer de modifier la ligne oDataForm = thiscomponent.drawpage.Forms.getByName(strNomForm) en la remplacant par : oDataForm = CurrentComponent.drawpage.Forms.getByName(strNomForm) sans garantie, je n'ai pas OOo sous la main pour tester.
Merci. Roselyne