[Résolu] Remplacer contenu cellules simultanément

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.

[Résolu] Remplacer contenu cellules simultanément

Messagepar warmless » 05 Sep 2011 15:26

Bonjour,
je voudrais remplacer le contenu de plusieurs cellules simultanément(comme c'est le cas sur Calc) sur un gros fichier odb, soit sur la table, soit sur le formulaire(le plus simple des 2). L'icône rechercher remplacer existe bien(comme c'est le cas sur Calc), mais l'option remplacer est grisée/désactivée car elle ne concerne pas odb. Y a-t-il un menu ou une astuce qui permette de remplacer les données autrement que cellule à cellule, puisqu'il n'est pas possible de copier les données de Calc vers odb via une table existante ? (voir mon autre sujet à ce propos).
Dernière édition par warmless le 13 Sep 2011 12:48, édité 1 fois.
OpenOffice 3.1.1 Windows XP SP3
warmless
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 01 Août 2011 15:57

Re: remplacer contenu cellules simultanément

Messagepar Dude » 05 Sep 2011 16:25

Salut,

Il n'y a pas de cellule dans une base de données mais une table avec des colonnes et des champs. Le vocabulaire est important car Base n'est pas un tableur.

warmless a écrit:Y a-t-il un menu ou une astuce qui permette de remplacer les données

Oui, il faut faire une requête SQL :
Code : Tout sélectionner   AgrandirRéduire
UPDATE "TaTable" SET "TaColonne" = REPLACE("TaColonne", 'Bonjour', 'Au revoir');

Remplace dans la table TaTable, le mot "Bonjour" par "Au revoir" dans tous les champs de la colonne TaColonne.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21118
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: remplacer contenu cellules simultanément

Messagepar warmless » 07 Sep 2011 07:13

Bonjour,
j'ai eu deux messages d'erreur sur 2 colonnes testées:
1/ column not found
2/ Unexpected token in statement

Bien sûr, les colonnes existent et la syntaxe de la ligne de commande a été respectée. Le fait qu'il y ait des accents dans le titre de colonne ou les mots à changer influe-t-il sur la commande (couleur verte ou marron, accents en noir) ?
OpenOffice 3.1.1 Windows XP SP3
warmless
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 01 Août 2011 15:57

Re: remplacer contenu cellules simultanément

Messagepar spYre » 07 Sep 2011 07:35

Bonjour,

warmless a écrit:la syntaxe de la ligne de commande a été respectée

Peux-tu nous faire un copier/coller de l'instruction qui génère l'erreur ?
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 888
Inscrit le : 29 Oct 2008 20:02
Localisation : Liège, Belgique

Re: remplacer contenu cellules simultanément

Messagepar Dude » 07 Sep 2011 09:07

Faut-il encore se répéter ? Les gens qui te répondent n'ont pas de boule de cristal. :evil:
Il faut joindre systématiquement un fichier afin que l'on puisse tester et reproduire ce qui t'arrive.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21118
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: remplacer contenu cellules simultanément

Messagepar warmless » 09 Sep 2011 13:19

Bonjour Dude,
au risque de me répéter, je ne peux travailler sur ma base que pendant les heures de bureau, lorsque j'ai un creux.
Ceci dit, je vous joint une image de l'erreur rencontrée.
LogementFonction-erreur Sql.JPG
OpenOffice 3.1.1 Windows XP SP3
warmless
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 01 Août 2011 15:57

Re: remplacer contenu cellules simultanément

Messagepar spYre » 09 Sep 2011 15:14

Fournis au moins, en parallèle, une saisie écran de la table concernée.
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 888
Inscrit le : 29 Oct 2008 20:02
Localisation : Liège, Belgique

Re: remplacer contenu cellules simultanément

Messagepar jeanmimi » 09 Sep 2011 17:16

Bonjour,
Est-il possible de modifier le nom du champ de la Table en évitant les lettres accentuées "MinistereDemandeur" ?
Si oui, que donne la requête SQL dans ce cas ?
LibreOffice Version : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15063
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: remplacer contenu cellules simultanément

Messagepar warmless » 13 Sep 2011 07:31

Bonjour,
j'ai enlevé les accents des champs titre, et j'ai un autre message d'erreur. Je vous joins le calc, la base et la copie écran.
LogFonction essai SQL.ods
(8.74 Kio) Téléchargé 101 fois

LogFonction essai SQL.odb
(3.04 Kio) Téléchargé 89 fois

LogementFonction-erreur Sql-2.JPG
OpenOffice 3.1.1 Windows XP SP3
warmless
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 01 Août 2011 15:57

Re: remplacer contenu cellules simultanément

Messagepar Dude » 13 Sep 2011 09:43

Regarde ta chaîne de remplacement, il faut échapper les apostrophes si tu veux que le logiciel comprenne où il faut s'arrêter.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21118
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: remplacer contenu cellules simultanément

Messagepar jeanmimi » 13 Sep 2011 10:34

Reproduisant le même message d’erreur puis inspiré par la réponse de Dude, j'ai testé la décomposition de la commande SQL pour faire plusieurs passages :
- un premier pour mettre la majuscule à intérieur :
Code : Tout sélectionner   AgrandirRéduire
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", 'intérieur','Intérieur')

- un deuxième pour soustraire l'espace devant Intérieur :
Code : Tout sélectionner   AgrandirRéduire
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", ' Intérieur','Intérieur')

et, après actualisation de l'affichage de la table, ça te donnera une belle Table1 conforme.
Pièces jointes
LogFonction essai SQL_v2.odb
(3.38 Kio) Téléchargé 97 fois
LibreOffice Version : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15063
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: remplacer contenu cellules simultanément

Messagepar warmless » 13 Sep 2011 12:48

Merci jeanmimi,
j'ai repris ta ligne de commandes en mettant directement l'espace avant "intérieur":
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", ' intérieur','Intérieur')

et.. ça marche !!

Merci à tout le monde.

PS: par rapport à la 1e ligne de commande donnée par Dude, je remarque 2 différences:
UPDATE "TaTable" SET "TaColonne" = REPLACE("TaColonne", 'Bonjour', 'Au revoir');
un espace en moins avant l'apostrophe et un espace en plus après la virgule(en bleu souligné).
Cela suffit-il pour que la commande ne fonctionne pas ?
OpenOffice 3.1.1 Windows XP SP3
warmless
Membre lOOyal
Membre lOOyal
 
Message(s) : 28
Inscrit le : 01 Août 2011 15:57

Re: [Résolu]remplacer contenu cellules simultanément

Messagepar jeanmimi » 13 Sep 2011 14:53

Cela suffit-il pour que la commande ne fonctionne pas ?
J'ai plutôt l'impression que ce sont les espaces dans les expressions qui perturbent le SQL
LibreOffice Version : Version: 6.3.3.2 (x64) (4 novembre 2019)
Java (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15063
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Résolu]remplacer contenu cellules simultanément

Messagepar Dude » 13 Sep 2011 15:25

jeanmimi a écrit:J'ai plutôt l'impression que ce sont les espaces dans les expressions qui perturbent le SQL

Non, ce sont les apostrophes qui sont pris pour des fins de chaînes.

D'où ma réponse qui a semble t-il été éludée :
Dude a écrit:il faut échapper les apostrophes si tu veux que le logiciel comprenne où il faut s'arrêter.


Soit :
Code : Tout sélectionner   AgrandirRéduire
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", 'Ministère de l\' intérieur', 'Ministère de l\'Intérieur')
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21118
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 0 invité(s)