[Résolu] Remplacer contenu cellules simultanément
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.
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.
-
- Membre lOOyal
- Messages : 28
- Inscription : 01 août 2011 14:57
[Résolu] Remplacer contenu cellules simultanément
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).
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 modification par warmless le 13 sept. 2011 11:48, modifié 1 fois.
OpenOffice 3.1.1 Windows XP SP3
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: remplacer contenu cellules simultanément
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.
Remplace dans la table TaTable, le mot "Bonjour" par "Au revoir" dans tous les champs de la colonne TaColonne.
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.
Oui, il faut faire une requête SQL :warmless a écrit :Y a-t-il un menu ou une astuce qui permette de remplacer les données
Code : Tout sélectionner
UPDATE "TaTable" SET "TaColonne" = REPLACE("TaColonne", 'Bonjour', 'Au revoir');
-
- Membre lOOyal
- Messages : 28
- Inscription : 01 août 2011 14:57
Re: remplacer contenu cellules simultanément
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) ?
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
-
- InconditiOOnnel
- Messages : 888
- Inscription : 29 oct. 2008 19:02
- Localisation : Liège, Belgique
Re: remplacer contenu cellules simultanément
Bonjour,
Peux-tu nous faire un copier/coller de l'instruction qui génère l'erreur ?warmless a écrit :la syntaxe de la ligne de commande a été respectée
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: remplacer contenu cellules simultanément
Faut-il encore se répéter ? Les gens qui te répondent n'ont pas de boule de cristal.
Il faut joindre systématiquement un fichier afin que l'on puisse tester et reproduire ce qui t'arrive.
Il faut joindre systématiquement un fichier afin que l'on puisse tester et reproduire ce qui t'arrive.
-
- Membre lOOyal
- Messages : 28
- Inscription : 01 août 2011 14:57
Re: remplacer contenu cellules simultanément
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.
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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.1.1 Windows XP SP3
-
- InconditiOOnnel
- Messages : 888
- Inscription : 29 oct. 2008 19:02
- Localisation : Liège, Belgique
Re: remplacer contenu cellules simultanément
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
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: remplacer contenu cellules simultanément
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 ?
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 : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Membre lOOyal
- Messages : 28
- Inscription : 01 août 2011 14:57
Re: remplacer contenu cellules simultanément
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.
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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.1.1 Windows XP SP3
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: remplacer contenu cellules simultanément
Regarde ta chaîne de remplacement, il faut échapper les apostrophes si tu veux que le logiciel comprenne où il faut s'arrêter.
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: remplacer contenu cellules simultanément
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 :
- un deuxième pour soustraire l'espace devant Intérieur :
et, après actualisation de l'affichage de la table, ça te donnera une belle Table1 conforme.
- un premier pour mettre la majuscule à intérieur :
Code : Tout sélectionner
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", 'intérieur','Intérieur')
Code : Tout sélectionner
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", ' Intérieur','Intérieur')
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
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- Membre lOOyal
- Messages : 28
- Inscription : 01 août 2011 14:57
Re: remplacer contenu cellules simultanément
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 ?
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
-
- Grand Maître de l'OOffice
- Messages : 16960
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: [Résolu]remplacer contenu cellules simultanément
J'ai plutôt l'impression que ce sont les espaces dans les expressions qui perturbent le SQLCela suffit-il pour que la commande ne fonctionne pas ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
- IdOOle de la suite
- Messages : 25184
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Résolu]remplacer contenu cellules simultanément
Non, ce sont les apostrophes qui sont pris pour des fins de chaînes.jeanmimi a écrit :J'ai plutôt l'impression que ce sont les espaces dans les expressions qui perturbent le SQL
D'où ma réponse qui a semble t-il été éludée :
Soit :Dude a écrit :il faut échapper les apostrophes si tu veux que le logiciel comprenne où il faut s'arrêter.
Code : Tout sélectionner
UPDATE "Table1" SET "MinistereDemandeur" = REPLACE ("MinistereDemandeur", 'Ministère de l\' intérieur', 'Ministère de l\'Intérieur')