[Base] vidéothèque

Discussions sur les projets et applications développés en liaison avec une suite bureautique libre.

Modérateur : Vilains modOOs

Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Base] vidéothèque

Message par Pagalou »

Bon la nuit porte conseil et permet de remettre les idées en place. Maintenant ça fonctionne ! :)

MERCI à tous pour vos lumières !! J'ai encore une fois appris plein de choses et en plus c'est réussi !

Je joins la base dans le fil au cas où ça intéresserait certain.

Finalement pas de macro pour la recherche, c'est assez simple il faut juste baser le formulaire sur la bonne requête et paramétrer les Listbox correctement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.14
Windows 10
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Résolu][Base] vidéothèque

Message par rollmops »

Bonjour,

S'il s'agit du formulaire "Sélection multiple", celui-ci est bizarre.
Chaque zone de liste est dans un formulaire imbriqué dans un autre.
Je ne vois pas comment cela pourrait fonctionner.
2023-08-18 09_48_56-Base_CoupeeV2.odb _ SelectionMultiple - OpenOffice Base_ Database Form.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.15 - Windows 10
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Bonjour rollmops,
C'est vrai que j'ai suivi ce modèle de listes dans des formulaires imbriqués les uns dans les autres à partir d'un autre fil de messages. Les formulaires de sélection sont tous basés sur la table selection et relié entre eux par l'identifiant de cette table. Au fond ce n'est peut-être pas nécessaire de les imbriquer, un seul formulaire de sélection pourrait suffire ?
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

@ Pagalou

C'est là que les Athéniens s'atteignirent!

Pagalou! Avais-tu bien lu le fichier de jeanmimi?

Apparemment NON, ou pas assez..

Tes zones de listes étaient bâclées!

Je joins fichier.

A+

nounours2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par nounours2 le 20 août 2023 12:22, modifié 1 fois.
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Et bien voilà j'ai avancé dans le projet, grâce à vos conseils, à vos pistes dans le forum. :)
Je vous propose la base avec les formulaires de saisie et de recherche multi-critères.
Il faut maintenant encore peaufiner la présentation des résultats pour afficher les critères de chaque vidéo dans une ligne (en concatenant sans doute)

Mais c'est déjà fonctionnel ! 8)

Si certains ont le temps de farfouiller pour voir si ce n'est pas trop alambiqué comme boulot ce serait cool.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

@ pagalou

Il te faudrait un peu d'huile de foie de morue pour te booster un peu...

Slts

nounours2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Merci nounours, c'est sympa ! :super:
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

Pagalou a écrit : 20 août 2023 14:25 Merci nounours, c'est sympa ! :super:
Bonne semaine Pagalou!
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Base] vidéothèque (avec GROUP_CONCAT ?)

Message par Pagalou »

Suite des améliorations.
En essayant d'afficher les résultats de la recherche multi critères je me suis heurté à un problème :
comment afficher dans UNE ligne les différentes infos d'un même critère ?

En effet, à part la source, tous les critères d'une vidéo peuvent être multiples ( par exemple pour le critère couleur, il peut y avoir une couleur de notée ou bien deux ou plus ou aucune). Mais on ne sait pas l'avance le nombre d'infos.

J'ai cru comprendre que la fonction GROUP_CONCAT sera idéale mais je n'arrive pas à la faire fonctionner....

Quelqu'un aurait un exemple ?
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

@ Pagalou

Essaye voir d'adapter ce code SQL à ta recherche...

Code : Tout sélectionner

SELECT ID_code,GROUP_CONCAT(DISTINCT legume)
FROM ma_table
GROUP BY ID_code
ORDER BY GROUP_CONCAT(DISTINCT legume) ASC;
Slts

Nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Merci Nounours
je n'arrive pas à faire fonctionner le code j'ai toujours un syntax error...
j'ai tapé ceci

Code : Tout sélectionner

SELECT "t_video_legume"."legume_id",GROUP_CONCAT(DISTINCT "t_legume"."legume_nom")
FROM "t_video_legume" left join t_legume on t_legume.legume_id = t_video_legume.legume_id
GROUP BY "t_video_legume"."video_id"
ORDER BY GROUP_CONCAT(DISTINCT "t_video_legume"."legume_id") ASC;
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

Salut Pagalou,

Je crois que je t'ai mal aiguillé, car l'instruction GROUP_CONCAT n'est pas contemplée (d'aprés ce que je lis ci-après:
Villeroy a écrit : 29 janv. 2020 10:31 GROUP_CONCAT requires HSQL2. It does not work with an embedded HSQLDB. I don't know about embedded Firebird.
Your query is missing the GROUP BY statement.
C'est moi qui cette fois ai bâclé ma réponse...

Slts

Nounours2
Libre Office 6.0.7 sous Ubuntu 18.04
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: [Résolu][Base] vidéothèque

Message par jeanmimi »

Bonjour,
Il est possible de contourner l'absence de l'instruction GROUP_CONCAT comme détaillé dans ce tutoriel :
viewtopic.php?t=33843
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Merci jeanmimi,
j'ai regardé la solution pour contourner l'absence de GROUP_CONCAT. Il me faudrait utiliser la version macro car j'ai parfois beaucoup de choix dans les critères( peut-être jusqu'à 10).
Par contre en essayant de faire tourner la macro de l'exemple il y a un message d'erreur. Et bien que je comprenne un peu les lignes de la macro, je ne sais pas ce qui ne va pas.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.14
Windows 10
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: [Résolu][Base] vidéothèque

Message par jeanmimi »

Avec ma configuration, la Macro fonctionne.
Est-ce que tu avais bien enregistré le fichier avant d'ouvrir le Formulaire et activer la Macro par clic sur le Bouton ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Oui, j'ai bien téléchargé le fichier avant de tester la base. C'est donc ma config qui ne va pas ? Est-ce que je peux régler cela ?
Apache OpenOffice 4.1.14
Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Base] vidéothèque

Message par Dude »

La macro n'a rien à voir. C'est la requête INSERT qui ne peut s'exécuter car il y a un doublon sur la clé primaire.
Lire ce tutoriel et la partie "Avant de partir tête baissée" : https://beaussier.com/sections/viewtopic.php?f=8&t=1577
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: [Résolu][Base] vidéothèque

Message par jeanmimi »

Comme GROUP_CONCAT n'existe pas dans Base avec son moteur actuel HSQLDB, comme le disait un peu plus haut nounours2
nounours2 a écrit : 21 août 2023 18:52 Je crois que je t'ai mal aiguillé, car l'instruction GROUP_CONCAT n'est pas contemplée (d'après ce que je lis ci-après :
,
j'ai testé la requête avec ma configuration, après avoir transféré les objets de la Base (tables, requêtes, formulaires) dans une nouvelle base utilisant le moteur Firebird (possible avec LibreOffice, pas avec AOO). Ce moteur accepte l'instruction LIST dont le résultat serait identique à celui que tu aurais avec GROUP_CONCAT de MySQL par exemple.

Le code de la requête :

Code : Tout sélectionner

SELECT "t_video_legume"."legume_id", LIST( "legume_nom" ) FROM "t_legume" 
LEFT OUTER JOIN "t_video_legume" ON "t_legume"."legume_id" = "t_video_legume"."video_legume_id" 
GROUP BY "t_video_legume"."legume_id" ORDER BY "t_video_legume"."legume_id" ASC
que tu peux comparer avec celui que tu avais rédigé un peu plus haut dans ce fil de messages :

Code : Tout sélectionner

SELECT "t_video_legume"."legume_id",GROUP_CONCAT(DISTINCT "t_legume"."legume_nom")
FROM "t_video_legume" left join t_legume on t_legume.legume_id = t_video_legume.legume_id
GROUP BY "t_video_legume"."video_id"
ORDER BY GROUP_CONCAT(DISTINCT "t_video_legume"."legume_id") ASC;
Voici l'aperçu :
Requête_LIST_Firebird.png
Cependant, je suis bien d'accord que l'idéal serait de réussir à adapter les contournements du tutoriel à ta Base.
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
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

Jeanmimi a écrit (épilogue)
Cependant, je suis bien d'accord que l'idéal serait de réussir à adapter les contournements du tutoriel à ta Base
C'est en progressant petit à petit que j'apprends ET NON PAS en jouant la PRIMADONNA!

Merci Jeanmimi

@ Pagalou

Te voici deux listes que tout le monde peut comprendre pour contourner le GROUP_CONCAT.

Slts

Nounours2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
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: [Résolu][Base] vidéothèque

Message par jeanmimi »

Pour ceux qui voudraient lire la Base Firebird avec LibreOffice, et comparer avec le travail de nounours2, même si la demande confirmait que la lecture doit se faire avec AOO :
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
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Résolu][Base] vidéothèque

Message par rollmops »

Re,

GROUP_CONCAT n'est reconnu qu'à partir de HSQLDB 2.3
Deux possibilités :
1) Passer en mode "split" et utiliser une base externe
2) Une macro pourrait concaténer les enregistrements récupérés

Pour le 1, il y a ce début d'explication : viewtopic.php?t=43723
Malheureusement, l'auteur n'est jamais revenu faire un retour de la procédure :(
Tout est en anglais côté documentation

Pour le 2, il faudrait sans doute ouvrir un sujet dans le forum Macros afin de mieux distinguer ce problème
Mais il y a déjà cette exemple à regarder : viewtopic.php?p=240068&hilit=group+concat#p240068
OpenOffice 4.1.15 - Windows 10
Jeff
GourOOu
GourOOu
Messages : 9632
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu][Base] vidéothèque

Message par Jeff »

Bonjour,

Jeanmi2403 donne un lien vers un guide expliquant comment installer HsqlDB comme moteur externe :

viewtopic.php?p=365970#p365970

A +
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Pour le 2, il faudrait sans doute ouvrir un sujet dans le forum Macros afin de mieux distinguer ce problème
Ok je vais faire ça car je n'ai pas réussi à adapter la macro des exemples que j'ai trouvé.
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

@ pagalou

A lire à l'entre-acte: E. Zola, Le ventre de Paris

Bien des choses

nounours2

P.S. Si tu connectes LO à Mysql via JDBC tu peux obtenir une réponse à Group_concat. Je joins exemple.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

Hello,
je continue à essayer d'afficher les résultats de la requête multicritères en lignes mais sans y parvenir. Je travaille sur le modèle en SQL exposé dans le fil viewtopic.php?t=33843. Je commence en essayant avec le critère couleur. J'ai donc essayé de créer une vue Test_Select-count.
Je pense comprendre grosso modo le principe mais je ne comprends pas la "définition" de la table Test et son utilisation précise. J'ai tenté de remplacer par des valeurs de ma base mais ça ne fonctionne pas.
Voici ce que j'ai tenté de faire :

Code : Tout sélectionner

SELECT 
	"t_video"."video_id", 
	"t_video"."video_nom",
	(SELECT COUNT("video_couleur_id") FROM "t_video_couleur" WHERE "video_couleur_id" >= "Test"."t_video_couleur" AND "video_id" = "Test"."video_id") AS "Groupe"  

FROM 
	"t_video_couleur"  AS "Test", 
	"t_couleur", 
	"t_video" 

WHERE 
	"t_video_couleur"."couleur_id" = "t_couleur"."couleur_id" 
		AND 
		"t_video_couleur"."video_id" = "t_video"."video_id" 
		AND
		"Test"."video_id" = "t_video"."video_id" 
		AND 
		"Test"."couleur_id" = "t_couleur"."couleur_id" 
Bon comme il y a une erreur, il n'est pas possible de garder mon code dans la vue donc il n'y a que le code de début.

Si quelqu'un peut mieux m'expliquer, voire même corriger le code je vous en serai reconnaissant.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.14
Windows 10
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: [Résolu][Base] vidéothèque

Message par jeanmimi »

Pagalou a écrit : 13 sept. 2023 12:11 mais je ne comprends pas la "définition" de la table Test et son utilisation précise
La Table Test dans l'exemple du fil que tu cites, correspond, de mon point de vue, à la Table t_video_couleur de ta base :
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
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

merci encore une fois jeanmimi !
j'ai révisé le code et j'ai trouvé l'erreur.
Cela fonctionne pour obtenir les numéros de "groupe" comme dans l'exemple Appart.

J'ai donc ce code :

Code : Tout sélectionner

SELECT 
	"t_video"."video_id", 
	"t_video"."video_nom",
	"t_couleur"."couleur_nom" 	,
	(SELECT COUNT("video_couleur_id") FROM "t_video_couleur" WHERE "video_couleur_id" >= "Test"."video_couleur_id" AND "video_id" = "Test"."video_id") AS "Groupe"  

FROM 
	"t_video_couleur"  AS "Test", 
	"t_couleur", 
	"t_video" 

WHERE 
	"Test"."couleur_id" = "t_couleur"."couleur_id" 
		AND 
		"Test"."video_id" = "t_video"."video_id" 
		AND
		"Test"."video_id" = "t_video"."video_id" 
		AND 
		"Test"."couleur_id" = "t_couleur"."couleur_id"
Je le fais fonctionner mais je ne comprends pas la façon d'utiliser un alias Test pour la table de jointure. J'ai essayé en remplaçant le terme Test par le nom t_video_couleur qui est celle qui correspond mais là ça ne fonctionne pas.
Quelqu'un pourrait-il expliquer cette structure du code ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

Bonsoir,

Il suffit d'ôter l'alias, mais tu auras le même groupe.

Code : Tout sélectionner

SELECT "t_video"."video_id", "t_video"."video_nom", "t_couleur"."couleur_nom", ( SELECT COUNT( "video_couleur_id" ) FROM "t_video_couleur" WHERE "video_couleur_id" >= "t_video_couleur"."video_couleur_id" AND "video_id" = "t_video_couleur"."video_id" ) "Groupe" FROM "t_video_couleur", "t_couleur", "t_video" WHERE "t_video_couleur"."couleur_id" = "t_couleur"."couleur_id" AND "t_video_couleur"."video_id" = "t_video"."video_id" AND "t_video_couleur"."video_id" = "t_video"."video_id"
Slts
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04
Pagalou
Membre OOrganisé
Membre OOrganisé
Messages : 81
Inscription : 07 août 2020 12:34

Re: [Résolu][Base] vidéothèque

Message par Pagalou »

mais tu auras le même groupe.
Oui voilà c'est le test que j'avais effectué. Est-ce que quelqu'un pourrait m'expliquer la différence(la théorie en gros), histoire que je sois capable de réutiliser cette technique dans d'autres cas un jour ?
Apache OpenOffice 4.1.14
Windows 10
nounours2
Membre prOOscrit
Messages : 88
Inscription : 18 juin 2023 15:10

Re: [Résolu][Base] vidéothèque

Message par nounours2 »

@ pagalou

Navré pour ton problème. Je crains de ne pouvoir aller outre dans ce domaine. Je ne comprends pas à quoi sert ta subquery di moment que la recherche simple, grâce aux contraintes, ne donne aucun doublon.

nounours2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04