[Résolu] Modifier une base de données MySQL

Discussions à propos du tableur Calc.
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 uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

[Résolu] Modifier une base de données MySQL

Message par Artazis »

Bonjour

Je cherche un moyen d'automatiser une tâche laborieuse. Je voudrais mettre à jour mes prix de vente produits, calculés avec calc, dans une base de données MySql de Dolibarr.
J'ai trouvé comment lier la base à calc et les modifications de ma base mettent à jour mon fichier calc. Mais c'est l'inverse que je voudrais faire. Mettre à jour la base à partir de Calc.
Dernière modification par Artazis le 13 févr. 2023 12:57, modifié 1 fois.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12851
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: Comment modifier une base de données mySql avec Calc ?

Message par Bidouille »

Bonjour,

"avec Calc" est inutile dans votre titre puisque c'est implicite ici.

Merci également de donner suite à votre précédente question :
viewtopic.php?t=66696
Notamment en ajoutant le classique balisage [Résolu] comme c'est l'usage sur ce forum.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Modifier une base de données MySQL

Message par jeanmi2403 »

Bonjour,
Artazis a écrit : 10 févr. 2023 15:36 J'ai trouvé comment lier la base à calc et les modifications de ma base mettent à jour mon fichier calc. Mais c'est l'inverse que je voudrais faire. Mettre à jour la base à partir de Calc.
C'est possible avec Base, mais avec Calc, je doute fort...
Cordialement,
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

Merci Jeanmi

J'ai posé cette question dans la partie base de ce forum. On m'a envoyé vers Calc comme j'accède directement à ma base avec Calc.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Modifier une base de données MySQL

Message par Dude »

Re,
Artazis a écrit : 10 févr. 2023 18:07 j'accède directement à ma base avec Calc
Peux-tu expliquer comment fais-tu pour accéder à MySQL depuis un classeur ?
Tu utilises CalcSQL ?
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

Peux-tu expliquer comment fais-tu pour accéder à MySQL depuis un classeur ?
Tu utilises CalcSQL ?
Je me suis mal exprimé. Je souhaite accéder à ma base avec Calc.
Pour le moment, je suis capable de lier une feuille Calc à une table un connectant un fichier Base. Le modification de la base modifie mon fichier Calc. Comme dans ce tuto :
https://www.mediaforma.com/libreoffice-calc-liaison-dune-table-ou-dune-requete-base-dans-calc/

C'est l'inverse que je souhaite faire. Je souhaite qu'une modification dans mon fichier calc modifie ma base.

Je ne connais pas CalcSQL. Je vais regarder.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

D'après, ce que j'ai compris, ClacSQL permet simplement récupérer des valeurs d'une base. Pas de les modifier. Ca date un peu.

J'ai essayé chatGPT. La réponse est bluffante et me donne une piste sérieuse. Voici ce qu'il me répond à ma question :
Je voudrais que ma requête SQL modifie une valeur de ma base à partir d'une valeur du tableau clac
La réponse
Pour effectuer une modification de base de données à partir d'une valeur dans une feuille de calcul LibreOffice Calc, vous pouvez utiliser une requête SQL avec une instruction UPDATE. Voici un exemple :

Assumez que vous avez une feuille de calcul nommée "Tableau1" avec une colonne appelée "Nom" et une autre colonne appelée "Valeur".

Dans la cellule B1, saisissez la formule suivante :

python

=VALEUR("SQL"; "UPDATE Table1 SET Valeur = " & B2 & " WHERE Nom = '" & A2 & "';")

Copiez la formule dans les autres cellules de la colonne B pour appliquer la mise à jour à toutes les valeurs du tableau.

Ensuite, exécutez la requête en cliquant sur "Outils" -> "SQL".

Notez que dans cet exemple, nous supposons que vous avez une table appelée "Table1" dans votre base de données avec des colonnes "Nom" et "Valeur". Vous devez remplacer ces noms de table et de colonne par les noms appropriés pour votre propre base de données.

Ce n'est qu'un exemple simple. Il est important de vérifier que la requête est correcte et ne modifie pas les données indésirablement avant de l'exécuter sur une base de données en production. Il est également recommandé de sauvegarder votre base de données avant de l'exécuter pour pouvoir la restaurer en cas de problème.
Ok. apparemment, c'est possible de programmer en python avec libre office Calc et ainsi envoyer mes requêtes de modification de ma base
Je vais creuser dans ce sens.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Modifier une base de données MySQL

Message par Dude »

Artazis a écrit : 13 févr. 2023 11:38 D'après, ce que j'ai compris, ClacSQL permet simplement récupérer des valeurs d'une base.
Oui et c'est pour cela que je te demandais si tu passais par ce biais pour récupérer tes données. :roll:
Artazis a écrit : 13 févr. 2023 11:38 Ca date un peu.
Comme tout cela est rédigée par des bénévoles.
Il suffit de proposer une révision via la section Enrichissez la documentation
Artazis a écrit : 13 févr. 2023 11:38 J'ai essayé chatGPT. La réponse est bluffante [...] c'est possible de programmer en python
La réponse est surtout parcellaire et irréalisable en l'état, le menu Outils > SQL n'existe pas sous Calc.
C'est possible de programmer en Basic aussi. Il suffit d'étudier CalcSQL qui montre comment faire des SELECT pour l'adapter à du UPDATE.


Cette section n'étant pas dévolue aux macros (cf. bandeau rouge en haut de la page), il faudra poursuivre au bon endroit.
Pour faciliter les recherches, tu mettras un lien vers le nouveau fil afin que tout le monde puisse suivre lors d'une recherche.
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

Oui et c'est pour cela que je te demandais si tu passais par ce biais pour récupérer tes données. :roll:
J'y ai répondu dans mon message de 11h44

Je vais creuser plusieurs pistes : python, calcSQL (merci Dude).

La suite dans la section Macros et API dont voici le lien
viewtopic.php?t=66728

PS : un peu de mal psychologiquement à mettre la balise [résolu] alors que ça ne l'est pas.
Dernière modification par Artazis le 13 févr. 2023 14:32, modifié 1 fois.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26201
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: Modifier une base de données MySQL

Message par Dude »

Artazis a écrit : 13 févr. 2023 12:57 La suite dans la section Macros et API dont voici le lien
Ton fil est verrouillé
Artazis a écrit : 13 févr. 2023 12:57 mettre la balise [résolu] alors que ça ne l'est pas.
Ca l'est puisque la solution est en programmation et non avec le tableur directement.
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

Dude a écrit : 13 févr. 2023 13:12 Ton fil est verrouillé
Oui, mauvais balisage. J'ai envoyé un message aux admins pour demander le déverrouillage.
Dude a écrit : 13 févr. 2023 13:12 Ca l'est puisque la solution est en programmation et non avec le tableur directement.
La question est en programmation, pas la solution. Du moins, pas encore.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1485
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: Modifier une base de données MySQL

Message par jeanmi2403 »

Bonsoir,
Artazis a écrit : 13 févr. 2023 11:38 J'ai essayé chatGPT. La réponse est bluffante et me donne une piste sérieuse. Voici ce qu'il me répond à ma question :
Ok. apparemment, c'est possible de programmer en python avec libre office Calc et ainsi envoyer mes requêtes de modification de ma base
Je vais creuser dans ce sens.
Pour python, pas de précipitation !
Quand on sait comment fonctionne ChatGPT (prolongation statistique du plus probable) il a assemblé tout un tas de choses trouvées sur la base qu'on lui a offerte.
En tout cas la formule qu'il donne relève du délire hallucinatoire...
Si c'est possible en python, ça l'est aussi en Basic.
Si on sait quels sont exactement les champs à modifier dans la base, ce n'est pas trop difficile.
Avec un cahier des charges très précis.
A plus
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Artazis
NOOuvel adepte
NOOuvel adepte
Messages : 19
Inscription : 18 janv. 2023 14:44

Re: Modifier une base de données MySQL

Message par Artazis »

jeanmi2403 a écrit : 13 févr. 2023 19:36 Pour python, pas de précipitation !
Ca fonctionne. Je vais mettre la solution dans la discussion dont le lien est situé un peu plus haut.
Quand on sait comment fonctionne ChatGPT (prolongation statistique du plus probable) il a assemblé tout un tas de choses trouvées sur la base qu'on lui a offerte.
En tout cas la formule qu'il donne relève du délire hallucinatoire...
Je n'en sais rien et je ne suis pas expert en chatGPT. Ce qui est sur, c'est que ça m'a mis sur une bonne voie.
Si c'est possible en python, ça l'est aussi en Basic.
Pas sur que l'envoie de requète SQL fonctionne bien avec Basic alors qu'avec python pas de souci. Peut être avec calcSql mais ça me semble un peu dépassé.
Si on sait quels sont exactement les champs à modifier dans la base, ce n'est pas trop difficile.
Pourtant, jusque là, personne ne m'a donné de piste valable à part Dude avec calcSQL que je n'ai pas suffisamment creusé pour juger.

Désolé jeanmi pour toutes ces réponses un peu cinglante. Je devrais te remercier pour ta participation à ma discussion, mais mon expérience sur ce forum a été désagréable.
Linux mint 20.3
Libre office 6.4.7.2 (Version stable des dépôts de mint)