[Résolu][Base] requête ou rapport avec passage de paramètre

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 !
guigui72
Fraîchement OOthentifié
Messages : 3
Inscription : 18 déc. 2013 15:08

[Résolu][Base] requête ou rapport avec passage de paramètre

Message par guigui72 »

Le modérateur a écrit :Le terme "macro" est inutile dans un titre puisque vous êtes dans la section consacrée aux macros
Bonjour à tous
Pour expliquer mon problème, je vais prendre un exemple simple :

Pour faire un exemple, nous avons une table :

Code : Tout sélectionner

Nom | Activité
Paul | fait du velo
Paul | fait la cuisine
Sarah | travaille
Sarah | est aux courses 
A l'ouverture du fichier odb, nous voyons un formulaire du type :

Code : Tout sélectionner

~~visualiseur d'activité~~
Champ texte : "entrer le nom de la personne pour laquelle vous voulez afficher ses activités"
Bouton : "visualiser"
Je souhaite ensuite afficher, lors d'un clique sur le bouton "visualiser", le rapport contenant les activités uniquement de la personne saisie, mais je ne sais pas comment faire.

J'aimerais faire une requête paramétrée et pouvoir modifier les paramètres via la macro mais je ne sais pas comment faire.
-J'ai vu que l'on pouvait mettre en syntaxe SQL les champs : "?" ou "[mon paramètre]", mais cela lance une invite de saisie de paramètres non souhaitable dans mon application.
-Autrement j'ai pensé faire un rapport dont le filtre serait modifiable via la reqûete, mais je n'ai pas vu la possibilité de faire cela.
-Dernière solution, en mode bricolage, faire une requête dans la macro, écrire le résultat dans une table, et afficher le rapport lié à cette table.

Merci pour vos conseils.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par guigui72 le 20 déc. 2013 10:40, modifié 1 fois.
libre office version 4.0.0.3 Windows 7 / libre office sous ubuntu
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Base] requête ou rapport paramétré par une macro

Message par Piaf »

Bonjour
guigui72 a écrit :nous avons une table
A ta place, j'aurais deux tables en relation un à plusieurs.
Un petit exemple joint
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
guigui72
Fraîchement OOthentifié
Messages : 3
Inscription : 18 déc. 2013 15:08

Re: [Base] requête ou rapport paramétré par une macro

Message par guigui72 »

Dans mon application réelle, je n'ai pas le choix car les tables de ma base de données SQL sont déjà crées par un autre logiciel, je ne peux pas le modifier.

En tout cas merci piaf pour ta réponse rapide, grâce à ton code, j'ai repéré la possibilité de modifier une requête via une macro, et donc d’accéder à ce que je souhaite :

Code : Tout sélectionner

sub OuvrirRapport(oEv as Object)
Dim oForm as Object, oConnexion as Object, oRapport as Object
Dim MonChamp as String, nomRapport as String, strSQL as String
	oForm = oEv.Source.Model.Parent
	MonChamp = oForm.getByName("MonChamp").CurrentValue
	oConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
''''''''''''''''''''''''''''''''''''''''
	strSQL = "SELECT ""Name"", ""Value"", ""AlarmLevel"", ""AlarmState"", ""TextAttr04"", ""TS"" FROM ""Database01"".""dbo"".""LogTable01""  WHERE ""Value"" =" & Apos(MonChamp)
	oConnexion.Queries.getByName("rRapport").Command = strSQL
''''''''''''''''''''''''''''''''''''''''
	oRapport = ThisDataBaseDocument.ReportDocuments.getByName("monrapport").open()
End Sub

Function Apos(ByVal chaine As String) As String
Apos = "'" & join(split(chaine, "'"), "''") & "'"
End Function
Merci beaucoup pour l'aide réactive !!
libre office version 4.0.0.3 Windows 7 / libre office sous ubuntu