[Résolu] [Base] Recherche dans une table

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 !
jojo86
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 05 févr. 2007 18:35

[Résolu] [Base] Recherche dans une table

Message par jojo86 »

Bonsoir, à tous !

Je débute tout juste, et j'ai besoin d'aide. J'aimerai ajouter a mon formulaire un module de recherche avec : un controle de table (pour afficher les résultat de la recherche)
Un champ texte ( pour saisir la valeur à recherche à savoir que c'est du texte)
Un bouton (celui qui éxecutera la macro)

Je ne sais pas comment faire, et sa m'embête de vous le demander mais bon. En faite, j'ai une requete qui fonction car je l'ai tester la voici :

Code : Tout sélectionner

SELECT * FROM "T_FILM" WHERE "film_nom" LIKE '%Ram%'
En faite, la macro devra entrer la valeur du champ dans une variable, et réstituer cette variable au bon endroit, c'est a dir entre les %......% Je ne vois pas du tout comment faire...
Merci de votre aide !

Le modérateur a écrit :Titre modifié.
Ancien titre : macro de recherche
Le terme "macro" est implicite, merci de faire un effort pour avoir un titre explicite
Dernière modification par jojo86 le 10 févr. 2007 15:25, modifié 1 fois.
Openoffice 2.1
Linux Mandriva discovery 2007
totomath
Membre lOOyal
Membre lOOyal
Messages : 47
Inscription : 08 févr. 2007 23:21

Message par totomath »

Bonjour, je suis moi même novice en la matière, et cette fonction m'intéresse aussi. J'éspère qu'une solution sera apportée.
mandriva 2007 free edition
Oo 2.1
Chibani
Fraîchement OOthentifié
Messages : 8
Inscription : 23 janv. 2007 08:46

Message par Chibani »

bonjour,
peut être ceci t'aidera un peu :
http://user.services.openoffice.org/fr/ ... c1454.html

Bonne chance
OpenOffice 2.1 sous Windows XP
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

Bonjour

Ci-joint un exemple simple http://user.services.openoffice.org/fr/ ... 044811.odb

Le principe est le même que dans ton fil sur la recherche par liste déroulante : accès au choix fait par l'utilisateur, puis modification de l'instruction SQL source du formulaire.

Le code est déclenché par un bouton, on accède à la zone de texte en respectant la hiérarchie : document courant, "feuille de dessin" où figure le formulaire, le formulaire lui-même (penser à adapter le nom s'il est différent), la zone de texte (idem pour le nom), la propriété qui contient le texte saisi.

Code : Tout sélectionner

Sub PysRechercher()
dim PysTexte as string, PysForm as object
dim PysSQL as string

PysForm = thisComponent.DrawPage.Forms.getByName("Standard")		'Accès au formulaire
PysTexte = PysForm.getByName("TextBox").Text						'Accès au texte de la zone

'SELECT * FROM "T_FILM" WHERE "film_nom" LIKE '%Ram%'
'Concaténation avec le choix fait dans la liste
PysSQL = "SELECT * FROM T_FILM WHERE film_nom LIKE '%" + PysTexte + "%'"
PysForm.command = PysSQL				'Redéfinition de la source du formulaire
PysForm.reload							'Recharge le formulaire

End Sub
jojo86
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 05 févr. 2007 18:35

Message par jojo86 »

Merci beaucoup !!!
Ca fonctionne nikel!
Par contre serait-il possible d'avoir une ou deux petite précision si tu as le temps de m'éxpliquer...

Code : Tout sélectionner

dim PysTexte as string, PysForm as object
dim PysSQL as string
On détermine ici Deux varialbe, mais je ne comprend pas leurs "syntaxe" notament le "as string" et "PysForm as object..."

Ensuite...

Code : Tout sélectionner

PysForm = thisComponent.DrawPage.Forms.getByName("Standard")		'Accès au formulaire

PysTexte = PysForm.getByName("TextBox").Text
Dans cette partie là je nage encore plus notament "PysForm = thisComponent.DrawPage.Forms.getByName("Standard")" il y a bien écris en commentaire "Accès au formulaire" mais comme je suis curieux, je veux comprendre.

Code : Tout sélectionner

PysForm.command
Je ne comprend pas cette commande...

Je sais bien que tu n'es pas la pour donner des cours, et je le conçoi, mais si tu m'éxplique ceci, je ferais un pas de plus. Merci à toi (je ne cherche pas à t'agacer mais juste à comprendre. Je pense qu'en demandant des éxplication je cherche à m'investir un minimum...)

Encore merci Pierre :wink:
Openoffice 2.1
Linux Mandriva discovery 2007
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

Bonjour

Concernant les variables, pour commencer tu peux utilement (et gratuitement), consulter l'aide en ligne. L'onglet Contenu / Macros et programmation / Guides / Utilisation des variables présente les types "standards".

Pour le type "object", il permet de manipuler... les objets. Concrètement, le document courant est un objet. Il peut comprendre un ou plusieurs formulaires, chacun étant un objet. Un formulaire comprend en général plusieurs contrôles, chacun étant un objet, etc.

Explications du code

thisComponent représente le document courant

DrawPage est la "page de dessin" (on pourrait dire la "couche") dans laquelle a été "dessiné" le formulaire

Forms est la "collection" des formulaires.

Précisons un peu : quand on dessine un contrôle dans un document, OOo crée automatiquement un formulaire auquel il rattache ce contrôle. Ce formulaire est nommé par défaut "Standard". C'est ce nom que l'on retrouve dans la macro ci-dessus.

Un formulaire peut être rattaché à une "source de données" ou non.
Il existe la notion de "collection" (Forms) car un document peut comprendre plusieurs formulaires, ce qui permet par exemple d'avoir des contrôles affichant les données de plusieurs sources différentes. Quand on est en mode "Conception" d'un formulaire, la barre d'outils "Conception de formulaires" propose un outil "Navigateur de formulaires" (à ne pas confondre avec le navigateur "habituel"). Ce navigateur liste tous les contrôles, permet de gérer l'ordre de tabulation, etc.

Command est la propriété du formulaire contenant le texte de la requête en l'occurrence. Quand on modifie le formulaire et qu'on affiche ses propriétés, on la retrouve dans l'onglet Données / Contenu.
jojo86
Membre OOrganisé
Membre OOrganisé
Messages : 51
Inscription : 05 févr. 2007 18:35

Message par jojo86 »

Merci pour toutes ces indications ! Je vais regarder l'aide en ligne. Encore merci.
Openoffice 2.1
Linux Mandriva discovery 2007