[Résolu]requete Sql - Outils sql - formulaire bouton

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

[Résolu]requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

Bonjour à tous

De ce que j'ai compris
Les requêtes sql servent à faire des requetes select non destructrices pour la table ...

Dans le cadre de requete type UPDATE ou encore alter table ou delete from il faut passer par Outils Sql
Mon problème est que je ne peux enregistrer nul part mes commandes SQL et qu'il me faut les retaper à chaque fois.
J'ai pensé pouvoir les relier à un bouton dans un formulaire :
bouton efface table
bouton remise index à 0
etc ...
mais à priori il me semble que les boutons dans les formulaires (sauf grosse erreur de ma part) ne peuvent être reliés qu'à des macros donc de la programmation autre que sql

Avez vous une idée du comment je pourrais sauvegarder mes commandes sql autre que select ? et si oui où et comment

Merci pour votre attention
Dernière modification par micmac le 25 janv. 2021 17:24, modifié 2 fois.
Raison : Ajout de la coche verte
Libre office portable 6.2.5
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: requete Sql - Outils sql - formulaire bouton

Message par jeanmimi »

Bonjour,
Xri59 a écrit :Avez vous une idée du comment je pourrais sauvegarder mes commandes sql autre que select ? et si oui où et comment
Pour quelques commandes de ce type, je crée un formulaire dans la Base sans aucun contrôle et j'y copie les commandes SQL.
Comme ça, je les retrouve facilement.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

merci pour cette solution

mais bon pas très pratique dans le cas d'un usage par un tiers ....
Libre office portable 6.2.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: requete Sql - Outils sql - formulaire bouton

Message par Dude »

Salut,
Xri59 a écrit :mais bon pas très pratique dans le cas d'un usage par un tiers ....
Précise nous les cas où un "tiers" doit exécuter un DELETE ou un ALTER TABLE. :shock:
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: requete Sql - Outils sql - formulaire bouton

Message par jeanmi2403 »

Bonsoir,
Xri59 a écrit :Avez vous une idée du comment je pourrais sauvegarder mes commandes sql autre que select ? et si oui où et comment
Bien que les macros semblent vous faire peur, voici un exemple de formulaire avec un bouton qui lance une macro (simple) exécutant des requêtes SQL stockées dans une table.
La table est modifiable dans le même formulaire.
Exemple_InsertUpdateDelete_SQL.odb
Exemple extrait du Guide Base
(14.8 Kio) Téléchargé 205 fois
Bonne soirée,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

@Dude

un tiers de confiance :
je crée un bd pour ce tiers qui en aura seul la gestion par la suite donc c est lui qui fera les update d"une table avec une autre table et qui aura la charge d effacer ou d alimenter la table qui sert à la mise à jour; par exemple ...

@jeanmi2403
merci pour cette approche, je vais essayer de voir cela
Libre office portable 6.2.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: requete Sql - Outils sql - formulaire bouton

Message par Dude »

Xri59 a écrit :c est lui qui fera les update d"une table avec une autre table
Ce n'est pas un exemple concret.
Je ne vois pas l'intérêt de mettre à jour une table avec une autre dans un modèle relationnel.
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

concrètement

Une table de livres avec notamment le champ date de lecture vide

en début de mois
mise à jour de cette table et surtout du champ pour les livres lus le mois précédent. Utilisation donc d'une table livres lus pour éviter une saisie manuelle
Libre office portable 6.2.5
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: requete Sql - Outils sql - formulaire bouton

Message par jeanmimi »

Xri59 a écrit :Une table de livres avec notamment le champ date de lecture vide
Ce champ n'est pas saisi dans la Table des livres ?
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

C est un champ qui reste vide dans la mesure où l'on ne sait pas quand le livre sera lu
Libre office portable 6.2.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: requete Sql - Outils sql - formulaire bouton

Message par Dude »

Cela signifie que ce n'est pas une base relationnelle.
Tu sembles importer des données au fil de l'eau saisies par ailleurs alors qu'il faudrait que tout soit centralisé.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: requete Sql - Outils sql - formulaire bouton

Message par jeanmi2403 »

Bonjour,
Xri59 a écrit :Une table de livres avec notamment le champ date de lecture vide
en début de mois
mise à jour de cette table et surtout du champ pour les livres lus le mois précédent. Utilisation donc d'une table livres lus pour éviter une saisie manuelle
- Pourquoi ne pas remplir tout simplement la date de lecture dans la table des livres ?
- je ne comprends pas "un champ" pour "les livres"
- je ne comprends pas ce que vient faire ici le "mois précédent".
Il nous faudrait un descriptif plus précis du projet, et éventuellement une base exemple qui nous permettrait de voir la procédure suivie.
Xri59 a écrit :Mon problème est que je ne peux enregistrer nul part mes commandes SQL et qu'il me faut les retaper à chaque fois.
J'ai pensé pouvoir les relier à un bouton dans un formulaire
Pour ma part, je pense avoir répondu aux questions initiales, tout le reste me semble relever d'un autre sujet ?
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

Merci pour vos réponses

effectivement je ne dois pas utiliser base dans son assertion principale qui est d'être une base de donnée relationnelle ....
Disons que j'étais confronté à un problème et que j'ai pensé à tort peut être que Base remplirait ce que j'attends.

J'ai une collection de bande dessinée mais vu le nombre et la fréquence de mes lectures il n est pas rare que j'oublie ce que j'ai lu aussi je me suis dit que j'allais créé quelque chose qui puisse retenir à ma place les dates de lecture des bandes dessinées
Je me suis donc tourné vers base.

J'ai créé une table qui référence titre bd, titre série, miniatures de la couverture, date d'ajout, date de lecture, commentaires éventuels, résumé de la bande déssinée

Dans cette table seul le champ date de lecture n'est pas connu à l'avance....

Dans la réalité
En début de chaque mois je recense dans un fichier CSV les titres lus et leur date de lecture du mois précédents (grace à un script python)

au moyen de ce csv j'alimente une table Lue contentant le titre de la bd et la date de lecture
Ceci fait j'ulilise outils --- sql et je fais un UPDATE de la table principal : les dates de lecture sont mises à jour au regard du contenu de la table Lue

Donc effectivement il n y a rien de relationnel dans cette base et encore moins dans mon utilisation de celle-ci.... Peut être ai je mal choisi l'outil en prenant Base pour faire ceci.

Merci encore pour votre attention
Et effectivement si le seul moyen de créer cette requete UPDATE est de passer par une macro VB comme expliqué précédemment alors je mettrai un résolu à ce fil

Après je ne suis pas contre vos avis pour me conseiller un outil (autre que Base et surtout autre qu'un logiciel tout fait de gestion de collection)
Libre office portable 6.2.5
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: requete Sql - Outils sql - formulaire bouton

Message par jeanmi2403 »

Re -
Xri59 a écrit :En début de chaque mois je recense dans un fichier CSV les titres lus et leur date de lecture du mois précédents (grâce à un script python)
Et pourquoi passer par cette étape ?
Ceci fait j'ulilise outils --- sql et je fais un UPDATE de la table principal : les dates de lecture sont mises à jour au regard du contenu de la table Lue
Et comment être sûr que les dates vont vers les bonnes BD ?

A ma connaissance, le seul moyen d'exécuter une requête SQL autre que SELECT, c'est avec une macro.
Bonne journée
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

jeanmi2403 a écrit :Et pourquoi passer par cette étape ?
Passer par cette étape : et bien le but premier est de consigner la date de lecture de la dite BD et ceci une fois par mois pour le mois écoulé .... C est la seule finalité de ma base
Et comment être sûr que les dates vont vers les bonnes BD ?
le titre de la bd dans la table n'étant pas redondant je me base sur lui pour efectuer la mise à jour
UPDATE table
set dateLecture =
(select datelecture fron table where tablelue.titre= titre)
et ça marche bien
Dernière modification par Xri59 le 25 janv. 2021 16:25, modifié 1 fois.
Libre office portable 6.2.5
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12198
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: requete Sql - Outils sql - formulaire bouton

Message par Bidouille »

Veillez à ne pas citer l'intégralité du message auquel vous répondez (qui est lui-même une citation du message précédent).
Cela alourdit inutilement la lecture.
Vous devez penser à ceux qui vous lisent.

Cliquez sur "Répondre" la prochaine fois ou gardez uniquement l'essentiel de l'information.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 10:02
Localisation : Val de Marne

Re: requete Sql - Outils sql - formulaire bouton

Message par jeanmi2403 »

Re-
Ma question était plutôt : Pourquoi un script Python ?
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
Xri59
Membre lOOyal
Membre lOOyal
Messages : 28
Inscription : 04 sept. 2019 11:30

Re: requete Sql - Outils sql - formulaire bouton

Message par Xri59 »

et bien une fois la bd lue elle est stockée provisoirement dans un répertoire tempon
ex Decembre 2020

le script liste les fichiers du répertoire et crée un csv avec d abord le titre de la bd puis en seconde partie de ligne la date soit pour cet exemple 01/12/2020
Libre office portable 6.2.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: requete Sql - Outils sql - formulaire bouton

Message par Dude »

Tout ce que tu fais semble inadéquate dans le fonctionnement normal d'une base.
On n'enregistre pas de multiples versions pour en faire un CSV qui sera ensuite réimporté. :roll:
Si tu veux garder un historique, l'information doit être présente dans le document.

Tout cela est un problème XY qui comme l'indique jeanmi2403 devrait faire l'objet d'un fil dédié.
Tu y joindras ta base avec un minimum de données permettant de comprendre et de l'exploiter.
jeanmi2403 a écrit :exécutant des requêtes SQL stockées dans une table
Une autre approche est le stockage "naturel" des requêtes dans des... requêtes :
https://www.beaussier.com/sections/view ... f=8&t=1577
Verrouillé