[Base] Gestion d'une collection

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

Modérateur : Vilains modOOs

Répondre
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

[Base] Gestion d'une collection

Message par Musigny72 »

Ô, Grands Ordonnateurs de la (courroie de) transmission du Savoir,
Comme beaucoup de petits scarabée, je viens solliciter les conseils et les connaissances des Grands Sages.
Car
Comme beaucoup de petits scarabée, j'ai apparemment vu la montagne bien moins haute qu'elle n'est en vérité.
Là, je bloque sévère sur une ******* de requête SQL
Mais, à ma décharge, lorsque j'ai fini mes études il y a quelques dizaines d'année, l'informatique n'était pas tout à fait d'actualité. J'ai découvert l'acronyme SQL il y a peine 15 jours et depuis, je m'immisce dans les joies des requêtes, enfin joie, quand ça se passe bien. Parce que lorsqu'on galère, on va sur internet, normal.
Et là,
tu découvres qu'il y a SQL et ... SQL, et puis un autre SQL et encore un autre... Pffouuu
C'est là que j'ai décidé de venir voir des pros de base
Mon projet est de créer une base de donnée pour gérer une collection.
Mes questions vont toucher tous les domaines, SQL, macro, ...

Je sollicite la bienveillance des modérateurs (Aie, pas la tête) quant à l'aiguillage de ce post.

Afin de clarifier nos échanges, je prépare une base de travail anonymisée identique à celle sur laquelle je travaille en parallèle
(outre quelques tables et intitulés de champs nommés différemment, même nombre d'enregistrement)

Au plaisir de vous lire

PS : J'ai lu les Id_Choix (Table choix : 1 = quelques, 2 = nombreuses) règles et comme nombres de petit scarabée l'ont déjà fait remarqué, je ne m'aventurerai pas, vu le niveau de mes connaissances, à provoquer le courroux voire l'ire des grands sages par quelques cuistreries forcément inappropriées, qui me laisserait cette désagréable sensation de paraître quelques temps intelligent, avant de définitivement passer pour un con (Explication non scientifique mais indéniable de la supériorité de la vitesse de la lumière sur celle du son)
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Accompagnement projet

Message par jeanmimi »

Bonjour,
Musigny72 a écrit :Mon projet est de créer une base de donnée pour gérer une collection.
Dans la section Projet du forum, le scarabée peut trouver plusieurs exemples de bases qui gèrent des collections, y compris d'insectes.
Un coup d'élytres pour aller voir comment ces exemples sont éclairants vaut le déplacement.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: Accompagnement projet

Message par Musigny72 »

Bonjour,
Merci de la "célérité" de la prise en compte de mon post
"Le petit scarabée" en a déjà pas mal consulté et ils m'ont bien aider à créer la base ... de ma base.
Ma première question serait de m'assurer qu'au niveau structure j'ai à peu près compris le fonctionnement.
Apparemment oui, parce que je peux déjà faire pas mal de choses mais peut être que non, d'où mes difficultés présentes ou à venir.
Pièces jointes
CoquilleGestionCollec.odb
(43.22 Kio) Téléchargé 306 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Accompagnement projet

Message par Piaf »

Bonjour
Dans un premier temps, tu devrais mettre les identifiants en Autovaleur.
À quoi sert la table Initiale ?
Initiales.png
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: Accompagnement projet

Message par Musigny72 »

Bonjour,
et merci pour les retours.
Pour les clés primaires, c'est prévu dans ma coquille de travail, mais je ne peux pas les modifier dans la coquille d'échange.
Bizarrement, lorsque je fais modifier sur TableEditeur et que je passe en auto-valeur, il me dit qu'il ne peut pas modifier, il propose de supprimer et de recréer un enregistrement et là il voit rouge, il sort les gros mots Column is referenced in constraint or view SYS_REF_SYS_FK_91_102 in statement [ALTER TABLE "TableEditeur" DROP "Id_Editeur"
Enfin bon, ça c'est pas grave, c'est prévu dans ma base finale.
Pour ce qui concerne la TableInitiale, il faut comprendre qu'il y aura plusieurs centaines d'enregistrement dans la table editeur. Alors, je sais pas encore trop comment ça marche, mais j'imaginais que ça pouvait aider pour faire une liste déroulante.(Ce qui sera certainement l'objet d'une question future)
Difficile d'anticiper quand on ne sait pas trop comment ça marche
Dans le genre, le tri sur la table objet, j'ai été obligé de diviser le champ n° en partie numérique et partie alphanumérique. Pas possible de m'en sortir autrement.
Voilà le premier point sur lequel je bute Piaf
Je reprends
Voilà le premier point sur lequel je bute, Piaf (La syntaxe nom de nom, spécial dédicace à Kaamelott)
J'aimerai incorporer le rang dans la requête de classement suivante
RequêteClassementValeurMoyenneObject
J'ai vu quelques trucs sur le forum sans pouvoir les comprendre suffisamment afin de les reproduire.
Par exemple,
jeanmimi a écrit :Bonjour,
C'est faisable dans Base en passant par une première requête qui trie par score.
Puis en utilisant cette requête pour créer une vue.
Utiliser la vue pour créer une nouvelle table avec un ID en auto-valeur : cet ID sera le rang.
Là, je bloque sur la partie création de la nouvelle table à partir de la vue.
Est-ce que c'est un truc genre requête sql create table
De ce que j'entrevois, cette solution ne doit pas gérer les exæquos. Mais j'y ai passé du temps et j'aime bien comprendre.
Cela m'a permis néanmoins de comprendre un peu plus ce qu'est une vue et j'aurai par la suite des questions relatives à ce sujet...
(Je précise : je peux la créer en mode copier-coller de la vue de la requête mais pas de façon automatique)
Ce que je cherche à faire, c'est trouver comment faire une requête qui ferait apparaitre une colonne supplémentaire dans le "résultat",
colonne que l'on appellerait "rang" et qui gérerait les exæquos
Dans mon exemple, Eaunette et Hergé devrait avoir le rang 4 et passer à 6 pour Whouaf
Merci pour le temps que vous consacrez à résoudre mes petits tracas ainsi que ceux des copains qui sont dans la galère
En rééditant sur ce post, je me dis que peut être j'avais tout compris à la soluce de jeanmimi...des fois, on se casse la tête pour rien...
Je me dis également que peut-être il y a un un endroit sur le forum qui nécessiterai que j'aille y faire un tour, avec quelque chose de pas trop compliqué à assimiler
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: Accompagnement projet

Message par jeanmimi »

Musigny72 a écrit :orsque je fais modifier sur TableEditeur et que je passe en auto-valeur
Pour le faire, il faut d'abord supprimer les Relations qui ont été établies entre les Tables.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: Accompagnement projet

Message par Musigny72 »

Bonjour jeanmimi,
nécessaire fait (j'ai du virer une vue de table et une vue de requête également)
Merci pour les conseils
Là je bute toujours sur mes requêtes avec rang
Je tourne autour du type
SELECT 'champs de la requête'
######### +1 AS "Rang"
FROM "TableObject" AS "P1",
ORDER BY "Rang"
basé sur
spYre a écrit :Bonjour MIMA,

Ci-joint un exemple où rangs et ex æquo sont définis par des instructions SQL.
Pour conserver une certaine lisibilité, j'ai choisi de créer une vue intermédiaire (V_CLASSEMENT_CAT) pour le calcul du rang. L'identification des ex æquo se fait dans l'instruction source du rapport.


Cordialement.
mais j'ai du mal à reproduire, mes quelques neurones subsistant ne font pas encore les bonnes connexions

SELECT "P1"."Id_Editeur" AS "Id_Editeur",
"P1"."Editeur" AS "Editeur",
"P1"."Moyenne" AS "Moyenne",
( SELECT COUNT(*)
FROM "VueRequêteClassementValeurMoyenneObject" AS "P2"
WHERE "P2"."Moyenne"="P1"."Moyenne" ) +1 AS "Rang"
FROM "VueRequêteClassementValeurMoyenneObject" AS "P1"
INNER JOIN "TableEditeur" ON "VueRequêteClassementValeurMoyenneObject"."Id_Editeur" = "TableEditeur"."Id_Editeur"
GROUP BY "Id_Editeur", "Editeur"
ORDER BY "Rang", "Editeur"

C'est où que j'ai pas bon parce que là, il fâche tout rouge
Je joins une maj de la bdd
Pièces jointes
CoquilleGestionCollec.odb
(67.25 Kio) Téléchargé 213 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Accompagnement projet

Message par Piaf »

Bonjour
Musigny72 a écrit :Ce que je cherche à faire, c'est trouver comment faire une requête qui ferait apparaitre une colonne supplémentaire dans le "résultat",
colonne que l'on appellerait "rang" et qui gérerait les exæquos
Dans mon exemple, Eaunette et Hergé devrait avoir le rang 4 et passer à 6 pour Whouaf
Tu créés une vue
Vue.png
Puis une requête à partir de cette vue

Code : Tout sélectionner

SELECT *,(SELECT COUNT("CoteMoyenne")+1 FROM "Vue1" WHERE "CoteMoyenne" > "A"."CoteMoyenne") "Rang" FROM "Vue1" AS "A"
Rang.png
Rang.png (43.9 Kio) Consulté 6607 fois
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: Accompagnement projet

Message par Musigny72 »

;Bonjour
tout d'abord, merci pour les infos.
Création de la vue, pas de problème
mais lorsque je veux enregistré la requête SQL en simple copier-coller, il me dit
syntax error in SQL expression
unexpected $end, expecting BETWEEN or IN or SQL_TOKEN_LIKE
Je vois que chez toi, ca marche du fait des copies d'écran
La, je sous sous windows 7
Autrement, c'est exactement le résultat que je souhaite, on est sur la bonne voie
Je joins une maj de la bdd avec la création de "Vue1"
Pièces jointes
CoquilleGestionCollec.odb
(67.12 Kio) Téléchargé 201 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Accompagnement projet

Message par Piaf »

Re
Pour la requête, tu copies le sql envoyé, dans ta base, dans la rubrique Requêtes, tu cliques sur Créer une requête en mode SQL.
Tu colles l'instruction SQL, dans la barre d'outils, tu cliques sur le bouton SQL.

HS : Dans cette section, tu ne peux poser qu'une question par fil, ton sujet devrait être en section Projets.
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: Accompagnement projet

Message par Musigny72 »

RE,
Super merci, ça marche, mais c'est quoi le coup de la barre d'outil? On passe d'un SQL à un autre?
Piaf a écrit : Dans cette section, tu ne peux poser qu'une question par fil, ton sujet devrait être en section Projets.
A+
Musigny72 a écrit :
Je sollicite la bienveillance des modérateurs (Aie, pas la tête) quant à l'aiguillage de ce post.
Si quelqu'un peut réorienter ce fil dans la section projet, je suis un boulet, je vous l'avais pas dit

Surtout que comme pressenti, premier problème réglé égal question suivante. Je vais laisser le temps d'être réorienter
@+ et encore merci Piaf
Les gars, vous êtes trop efficace. Je vais approfondir la solution de Piaf dans ma vrai base, et puis les courses...
Je reviendrai certainement plus tard pour une autre question. Merci

Me revoilà avec mon lot de question, juste pour préciser
la solution de Piaf fonctionne super, merci, merci, merci
Faire une requête pour créer une vue et faire une requête pour questionner la-dite vue
petite restriction néanmoins sur le nombre de caractère donné à la vue transitoire
au-delà de 32 caractères message d'erreur, jusqu'à 18, ça passe du moins chez moi, mais je n'ai pas testé la limite
Donc je disais, j'étais en train de faire le tour de requêtes nécessaires à la construction de mon projet, j'en étais sur celle du genre WHEN « Ma Collection » = true, et je me disais que si je voulais gérer un deuxième profil, c'est le moment d'y songer.
J'ai donc revu un peu la base dont je joins la mise à jour.
Niveau structure, auriez-vous fait le même choix ?
Au plaisir de lire le prochain super conseil
Pièces jointes
CoquilleGestionCollec.odb
(109.12 Kio) Téléchargé 200 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion d'une collection

Message par Piaf »

Bonjour
En rentrant un peu plus dans le détail.
Tu devrais éviter tout ce qui est accents, ou caractères particuliers ainsi que les espaces dans les noms de champs, de tables ou de requêtes.
Toujours pas compris à quoi servait la table initiale.
Département et code postal en numérique ? Tu as l'intention de faire des calculs avec :) (attention à ceux commençant pas 0)
Je n'ai pas compris ton histoire de profil.
Tu devrais peut-être te concentrer sur sur le but final de la base, sur les tables et l'interface nécessaires pour entrer les données avant de vouloir les interroger :)
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: [Base] Gestion d'une collection

Message par Musigny72 »

Bonjour,
Piaf a écrit :Tu devrais éviter tout ce qui est accents, ou caractères particuliers ainsi que les espaces dans les noms de champs, de tables ou de requêtes.
Ok, c'est pris en compte dans ma "vraie" base de travail. J'ai utilisé mon premier essai pour faire ma base anonyme d'où quelques erreurs.
Piaf a écrit :Toujours pas compris à quoi servait la table initiale.
Département et code postal en numérique ? Tu as l'intention de faire des calculs avec :) (attention à ceux commençant pas 0)
Ca, c'est mon "mode Calc". J'ai commencé il y a quelques temps un fichier Calc qui recense tous les objets de ma collection. (d'où le N°noté de cette façon puisque dans Calc on insère où on veut). Mais il était temps de commencer à gérer ça plus sérieusement... J'imagine, à la vue de tes interrogations, qu'avec quelques requêtes filtrées et/ou macro bien senties, la table initiale sera superflue. Le but de cette coquille est d'essuyer les plâtres avant de finaliser la base de départ et l'incorporation massive de données.
Piaf a écrit :Je n'ai pas compris ton histoire de profil.
Pour cette histoire de profil, je vais laisser tomber dans un premier temps (quoique en y réfléchissant bien, je me dis que c'est un champ qui pourra très bien s'ajouter dans la table objet, genre une autre colonne "MaCollection" mais pour Lôtre)
Merci pour les conseils.
Je me laisse encore quelques essais de reproduction de fonctionnement de formulaire avant de revenir vous solliciter sur un des autres problèmes sur lequel je bute pour le moment.
@+ et merci encore

Bonjour,
Bon, on va régler cette histoire de table initiale(Mode Calc) une bois fois pour toute, hein Piaf. Je sens que tu pia**es d'impatience de me voir la supprimer, ce que je conçois tout à fait.
J'ai trouvé lors de mes longues sessions sur ce forum
Jeanmimi a écrit : Ajout : Dans cet autre exemple, avec Macro, une lettre tapée dans la Zone de texte du formulaire affiche les Noms commençant par cette lettre :
J'arrive à reproduire le fonctionnement à la différence que dans mon cas, je suis obligé de respecter la casse? je crois que c'est le terme, mais en gros, il faut que je tape à l'identique de la table, genre Hergé ne peut pas être trouvé avec h mais avec H. Je suis sûr que c'est un truc tout con, mais j'ai beau chercher, je ne vois pas où se trouve la différence. Et puis des fois, on est tellement dans le dur qu'on ne voit plus les évidences...
Je joins une mise à jour de la coquille de travail, formulaire VueTableEditeur
Je joins également l'exemple de Jeanmimi sus-cité
Pièces jointes
Macro pour sélectionner un enregistrement par saisie de lettres.odb
(18.14 Kio) Téléchargé 212 fois
CoquilleGestionCollec.odb
(121.71 Kio) Téléchargé 224 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion d'une collection

Message par Piaf »

Bonjour

Code : Tout sélectionner

PysSQL = "SELECT * FROM rEditeur  WHERE Editeur LIKE '" & pysChoix & "%' OR Editeur LIKE '" & UCASE(pysChoix & "%'"
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: [Base] Gestion d'une collection

Message par Musigny72 »

Bonjour Piaf,
Merci du coup de main.
Note à part : C'est un peu comme quand tu vas à la pêche en barque à deux,
tu pêches pareil, même technique/matériel, même corps/bas de ligne, même taille d'hameçon, même grammage, même leurre modèle/coloris/taille
ton pote arrête pas d'en soulever tandis que toi, t'as l'impression de pêcher dans une baignoire vide
Mais des fois, à la pêche, le rapport s'inverse

Le rajout de code fonctionne super, j'ai réadapté le process (Car la solution que Jeanmimi proposait à un copain dans la galère était basé sur une requête rNom) en partant sur VueTableEditeur et du coup, j'ai pu lié un sous-formulaire, ça avance

Et du coup, j'allais oublier de préciser, disparition de la table initiale

Re,
Merci Piaf du temps que tu consacres à mes petits tracas et de la complétude que tu apportes à tes réponses. Efficace, bravo.
La première solution me convient parfaitement(J'ai un problème pour reproduire la dernière), le but étant de pré-filtrer la table éditeur avant de jouer avec la table objet.
Pour ce qui concerne les noms d'éditeur en le machin ou les choses, ainsi que les « noms à particules », j'ai déjà été obligé (histoire de lisibilité et de ne pas surcharger certaines lettres) de les renommer dans mon fichier sous Calc comme Machin(Le), Choses(Les) et ainsi d'avoir « normé » les noms. 2, 3 lettres devraient suffire à pré-filtrer suffisamment le champ.
En tout cas, merci encore
Je réédite et ne fait pas un répondre pour remercier Piaf, car pour le moment, je vais explorer tous vos conseils dans ma base de travail et ne laisse pas de question en cours.
Dernière modification par Musigny72 le 03 mars 2019 14:54, modifié 2 fois.
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Gestion d'une collection

Message par Piaf »

Re
Comme le texte est composé de majuscule et de minuscule, tu peux définir le champ que tu veux filtrer en Texte(VARCHAR_IGNORECASE), ou utiliser

Code : Tout sélectionner

Sub Afficher(oEv as object)
dim oCtrl as Object, oForm as Object
dim strSQL as String, Lettre as String
    oCtrl = oEv.Source
	Lettre = UCase(oCtrl.Text)
    oForm = oCtrl.Model.Parent
	strSQL = "SELECT * FROM ""rEditeur""  WHERE UCASE(""Editeur"") LIKE '" & Lettre & "%'"
    oForm.Command = strSQL
    oForm.Reload
End Sub
Et pour être complet, puisque ce code ne fonctionnera pas en cas d'apostrophe dans le nom de l'éditeur, il faudrait employer ce code
Cliquer pour animer
Cliquer pour animer

Code : Tout sélectionner

Sub Afficher(oEv as object)
dim oCtrl as Object, oForm as Object
dim strSQL as String, Lettre as String
    oCtrl = oEv.Source
	Lettre = UCase(oCtrl.Text)
    oForm = oCtrl.Model.Parent
	strSQL = "SELECT * FROM ""rEditeur""  WHERE UCASE(""Editeur"") LIKE '" & join(split(Lettre,"'"),"''") & "%'"
    oForm.Command = strSQL
    oForm.Reload
End Sub
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Musigny72
Fraîchement OOthentifié
Messages : 9
Inscription : 01 mars 2019 18:10

Re: [Base] Gestion d'une collection

Message par Musigny72 »

Bonjour
Mon projet avance bien grâce à vos conseils.
Mon problème du moment est sur de la mise en page.
J'ai un formulaire d'accueil où je voudrais présenter une vue globale de ma collection directement dans du texte et non sous forme de tableau ou champ formaté.
J'aimerai reproduire le fonctionnement de Calc(### représentant les infos de cellules à aller chercher)
="Ma collection comporte "&###&" objets pour une valeur estimée à "&###&" €, soit une valeur moyenne de "&###&" €."
Est-ce possible et si oui, quel fil apporte une solution à mon problème. Mes résultats de recherche ne donnent rien.
Bonne journée à tous

RE,
J'ai bien conscience que Base n'est ni Writer, ni calc, mais je me demandais si il n'y avait pas une manière plus "élégante" de présenter quelques chiffres.
Après, si ce n'est pas possible, ce n'est pas grave, je ferai une présentation différente.


Bonjour,
Un modérateur a considéré à juste titre à la lecture de mes propos précédent que j'étais dans la phase finalisation et m'a rebasculé dans la section Base. Ceci dit, j'ai encore quelques points bloquant sur lesquels je travaille et essayais de trouver une solution avant de vous solliciter à nouveau.
Oublions donc cette histoire de mise en page et recentrons les débats sur l'os sur lequel je suis depuis un bon moment. Imaginons, pour illustrer les propos suivants, que l'objet de ma base est plutôt une gestion de cave à vin et tant qu'à faire, imaginons que j'ai prévu un voyage en Bourgogne et que je passerai par Gevrey-Chambertin, Nuits-Saint-Georges et Beaune. La bienséance, la marée chaussée, les limites du corps humain et celles de mon porte-feuille font que je ne pourrai pas rendre visite à tous les viticulteurs. Je voudrai préparer en amont un rapport qui me sorte l'état de ma cave des viticulteurs sélectionnés dans les localités sélectionnés. C'était plus parlant pour moi de le dire de cette façon.
Autrement, si on revient sur ma base d'échange, cela corresponds à pré-filtré la table éditeur en fonction des localités sélectionnées et ensuite de pré-filtrer la table objet en fonction des éditeurs sélectionnés.
Est-ce envisageable ?
Juste en SQL ?
Parce qu'autant le langage SQL me parle, autant le langage « macro *» est obscur.
J'ai lu pas mal de fil concernant les sélections multiples dont quelques tutoriels, mais rien ne corresponds vraiment à ce que je cherche à faire ou du moins pas trop difficile à appréhender et je ne sais pas trop comment procéder. Si quelqu'un a des exemples pas trop compliqué à analyser ou m'indiquer un fil où je pourrai trouver de l'info, je suis preneur.
Autrement, j'imagine qu'il faut faire un formulaire pour organiser les données en amont pour les exporter dans un rapport. Dans cette éventualité, j'ai déjà préparé une vue de table avec un champ Ville (sans doublon) et un champ vide nommé sélection, qui idéalement, une fois le champ renseigné (1,2,3...) dans le formulaire, servirait d'ordre de tri pour la deuxième sélection.
Je joins une mise à jour de la base d'échange avec disparition d'une certaine table** (grâce à vos conseils pour créer un champ de saisie filtrant). J'ai fait une ébauche sommaire de formulaire sur le principe de fonctionnement que j 'essaye de mettre au point dans ma base de travail.

* (J'ai lu dans un fil que le « pys » dans certaines macros est une signature et non un élément de langage macro, au passage, merci à Pierre-Yves Samyn pour tous les éléments partagés. Tout ça pour dire que je pars de loin aussi voire surtout sur les macros, même si je réussis parfois à les adapter à mon projet. J'en ai deux qui me pose problème pour le moment, mais j'y reviendrai plus tard si toutefois d'ici là, je n'ai pas réussi à obtenir le résultat escompté.)

** (Depuis que j'appréhende mieux le fonctionnement de base vis-à-vis de calc, j'ai aussi supprimé le champ collection idéale de ma table objet dans ma base de travail, ainsi que le champ N° car je réussi désormais à concatener NC et NL (numéro partie chiffre et numéro partie lettre) mais pas encore le nom ( personnage + NC + NL + Descriptif) de l'objet)

Les vues de tables ont été faites pour illustrer mon formulaire, là j'explore la possibilité d'utiliser une table "complémentaire" nommée Etape avec un champ "Etape" en auto-val de type integer qui servirait à trier la liste et un champ "Localite". Dois-je poursuivre sur cette voie ou c'est pas du tout la façon de procéder?

Bonjour,
J'ai trouvé une solution en faisant 2 tables complémentaires, 2 vues et une jonction vue/table. Les deux tables se remplissent via deux formulaires et j'en tire une requête qui me sert de base de rapport. Dans mon mode passage de Calc à Base, je m'étais mis une limite/contrainte, je ne sais pas pourquoi, genre une table doit forcément être relié au reste. Vu comme ça, il fallait que je rajoute une table localité et j'étais sûr qu'il y avait une autre solution. Alors, j'en vois sourire voire plus et ils ont bien raison, mais une table n'est pas forcément reliée aux autres, dis avec mes mots. Une fois ce verrou sauté, le reste est venu assez facilement (un peu galéré sur la jonction quand même)
J'avais installé Oracle Report Builder à la demande d'OO lorsque que j'ai commencé à vouloir explorer le domaine des rapports. L'outil est pas mal mais depuis, j'ai lu sur plusieurs fils que d'autres solutions existent. Quel serait votre conseil , avant de me lancer dans des désinstallations qui peuvent se révéler compliquées pour moi?
Je continue à bosser sur mes autres problèmes avant éventuellement de revenir vous consulter en cas d'énorme prise de tête, sur le mode chercher avant de demander. Je ne laisse pas de question sans réponse pour le moment.
Bon dimanche

Bonjour à tous,
Je reviens vers vous sur mon blocage du moment.
J'aimerai pouvoir combiner les avantages d'une table et d'une vue de table. Dis comme ça, je me dis bien que c'est soit l'un soit l'autre, mais n'étant pas expert et bien qu'ayant essayé plein de permutation avec différents niveaux de sous-formulaire, je n'ai pas trouvé à faire ce que je souhaite mais peut être que ce n'est pas possible.
Dans mon formulaire Recherche Par Editeur basé sur des vues de table (certaines collections sont vivantes dans le sens où des éditeurs apparaissent régulièrement et des objets sont édités de toute façon tous les ans), j'aimerai que seule la case à cocher Ma Collection soit modifiable et qu'en changeant d'objet dans la liste, le choix soit enregistré.
Pour le moment, il faut que je change d'éditeur et que je revienne sur le précédent afin de procéder à un nouvel enregistrement. Et de nouveau pour une troisième croix dans la case. C'est ce que j'ai trouvé de plus satisfaisant pour le moment.
Si quelqu'un a une idée ou qui sait que ce n'est pas possible, je suis preneur avant que je ne finisse de m'arracher le peu de cheveux qu'il me reste sur le cailloux.
Autrement, j'ai quasi atteint le niveau 1 de mon projet de gestion de collection (j'en fait plusieurs), niveau qui consistait à passer de Calc à Base, avec incorporation d'une image et possibilité d'export de liste (Le ° de n°1 par exemple pose problème dans le nom lors de l'ajout d'image dans un rapport).
Le niveau 2 consiste à pouvoir gérer un deuxième profil sur une collection (j'en partage une avec un pote). Je suis en train de lire des fils mais ça reste encore un peu abstrait pour moi, même si je ne désespère pas d'y parvenir.
Niveau 3 : possibilité de mettre une deuxième image (ça je sais faire) avec permutation par clic (ça moins, mais je n'ai pas encore cherché)
Niveau 4 : la cerise sur le gâteau, mais étant une véritable bille en macro, je doute, pas de vous s'entend, car j'ai vu quelques exemples sur des fils qui ressemblent beaucoup à ce que je veux faire et d'une manière générale, vous intervenez avec brio sur des projets beaucoup plus complexe que le mien, je doute, je disais, de mes maigres capacités à reproduire les macros, mais laissons le temps au temps, je vous solliciterai certainement d'ici là sur d'autres problèmes.

Je joins une mise à jour de ma base d'échange

Bonjour à tous,
Mon dernier edit date de trois jours et depuis, il y a eu plus d'une vingtaine de passage sans aucun téléchargement de la base d'échange. J'en déduis que ma question n'appelait peut être pas de réponse ou du moins, était perçue comme telle. Au passage, j'ai opté pour l'ajout de deux petits boutons, un pour valider l'enregistrement et un pour rafraîchir la vue de table.
Nouveau questionnement : J'ai un contrôle picto dans un formulaire qui affiche le champ NomRecto de ma table photo. J'aimerai qu'au survol de celui-ci, le verso (champ NomVerso de la même table photo) s'affiche à la place. J'ai bien sûr effectué quelques recherches sur le site, ce qui m'a permis de voir où positionner la future macro (événements : souris à l'intérieur), mais je n'ai pas trouvé d'exemple (changement de champs) à analyser. Si quelqu'un a un exemple à me proposer pour que je puisse m'en inspirer, merci de m'indiquer le fil contenant l'info à analyser ou une base exemple à télécharger.
Au plaisir de vous lire

Bonjour,
J'ai trouvé en faisant le tour de toutes les occurrences sur « survol », une macro de Piaf sur l'animation de bouton picto dans ce fil https://forum.openoffice.org/fr/forum/v ... to#p288997 . Or, quand je mets les trois bouts de code dans une macro, j'ai un message d'erreur qui me dit que la fonction n'est pas définie. Et quand je prends tout le code macro en ouvrant la pièce jointe zippée, j'ai une autre erreur dans la dernière section, valeur ou type de donnée interdit, Index hors de la plage définie sur la ligne parts(UBound(parts())) = ""
Alors, j'ai changé la valeur des arguments car j'ai déjà la macro ouverture fermeture par tag sur ce bouton picto en mettant en troisième position (soit 2 dans la macro) dans le champ complément d'information l'image souris en dehors, en quatrième (soit 3 dans la macro) l'image souris à l'intérieur et en cinquième l'image(4) bouton enfoncé. Les images sont dans le même répertoire que la base. Dans la base d'échange dont je joins une mise à jour, le problème est reproduit dans le formulaire destination.
Bon week end à tous et merci à ceux qui prendront un peu de temps pour examiner mon cas.
Pièces jointes
CoquilleGestionCollec2.odb
(395.49 Kio) Téléchargé 314 fois
OpenOffice 4.1.5 sur
Windows 10 entreprise et Windows 7 Edition familiale
Répondre