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


Répondre à