[Résolu] Rechercher les valeurs avec un espace final

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.
ViniAsco
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 11 mai 2022 15:55

[Résolu] Rechercher les valeurs avec un espace final

Message par ViniAsco »

Bonjour
Les requêtes d'une collègue ne retournent pas les bons résultats parce qu'elle a mal saisi certaines valeurs en ajoutant un espace à la fin.
Je sais que ça ne concerne pas beaucoup d'entrées, mais elles sont disséminées dans sa base.
Je souhaiterais donc les sélectionner et mettre manuellement la bonne valeur.
Je fais un filtre avec [nom de champ] [comme] ['* '], mais ça me retourne tout, puisque le ['* '] devient ['*']. L'espace n'est pas gardé.

Comment faire ?

Merci
Dernière modification par Oukcha le 03 déc. 2024 12:31, modifié 1 fois.
Raison : Balisage
LibreOffice 7.4.7.2 sous macOS 15.6
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Rechercher les valeurs avec un espace final

Message par jeanmimi »

Bonjour,
Si le filtre du champ est ' ', quel est le résultat ?
Plusieurs fonctions HSQLDB pourraient aussi être testées, comme REPLACE, LOCATE, SUBSTRING
Une recherche dans le forum sur ces mots clés ramène des ressources avec des instructions qui pourraient fonctionner dans le cas présent.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
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: Rechercher les valeurs avec un espace final

Message par Dude »

Salut,

C'est l'instruction TRIM qu'il faut utiliser.
Mais bon, il suffit d'interdire l'espace dans le champ du formulaire avec un contrôle masque.
ViniAsco
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 11 mai 2022 15:55

Re: Rechercher les valeurs avec un espace final

Message par ViniAsco »

Bonjour
jeanmimi a écrit : 12 sept. 2024 18:38 Si le filtre du champ est ' ', quel est le résultat ?
Rien n'est remonté,
Mais si je filtre avec '* *', certaines valeurs avec un espace final remontent, ce que je trouve étrange parce que je pensais que le * final signifiait que l'espace devait être suivi de caractères. Et pourquoi que certaines et pas toutes ?
jeanmimi a écrit : 12 sept. 2024 18:38 Plusieurs fonctions HSQLDB pourraient aussi être testées, comme REPLACE, LOCATE, SUBSTRING
Dude a écrit : 12 sept. 2024 19:38 C'est l'instruction TRIM qu'il faut utiliser.
Je ne maitrise pas la manipulation des bases via des commandes sql, ou alors avec les outils d'assistance. Je ne saurais même pas où saisir ces commandes.
Dude a écrit : 12 sept. 2024 19:38 Mais bon, il suffit d'interdire l'espace dans le champ du formulaire avec un contrôle masque.
Ma collègue saisit directement dans la base, sans passer par un formulaire.
C'est plus pratique quand il faut reprendre des infos d'un autre enregistrement.
LibreOffice 7.4.7.2 sous macOS 15.6
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Rechercher les valeurs avec un espace final

Message par jeanmimi »

ViniAsco a écrit : 13 sept. 2024 07:06 la manipulation des bases via des commandes sql
En appliquant l'instruction fournie par Dude, la séquence SQL est :

Code : Tout sélectionner

SELECT "NOM", RTRIM( "NOM" ) FROM "T_NOMS"
Ci-dessous, le lien vers le Guide HSQLDB :
https://wiki.openoffice.org/wiki/FR/Doc ... h09#SELECT
ViniAsco a écrit : 13 sept. 2024 07:06 Ma collègue saisit directement dans la base, sans passer par un formulaire.
Faut-il comprendre qu'elle saisit directement dans la Table comme s'il s'agissait d'une feuille de Tableur ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
ViniAsco
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 11 mai 2022 15:55

Re: Rechercher les valeurs avec un espace final

Message par ViniAsco »

jeanmimi a écrit : 13 sept. 2024 09:05 Faut-il comprendre qu'elle saisit directement dans la Table comme s'il s'agissait d'une feuille de Tableur ?
C'est bien ça, je lui ai proposé le formulaire, mais elle n'en voyait pas l'intérêt.
Et puis, la saisie de nouvelles entrées est peu fréquente.
LibreOffice 7.4.7.2 sous macOS 15.6
ViniAsco
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 11 mai 2022 15:55

Re: Rechercher les valeurs avec un espace final

Message par ViniAsco »

jeanmimi a écrit : 13 sept. 2024 09:05 En appliquant l'instruction fournie par Dude, la séquence SQL est :

Code : Tout sélectionner

SELECT "NOM", RTRIM( "NOM" ) FROM "T_NOMS"
OK, mais il faut saisir cette ligne de commande où ?
Merci
LibreOffice 7.4.7.2 sous macOS 15.6
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Rechercher les valeurs avec un espace final

Message par jeanmimi »

Il faut ouvrir la Base de données, choisir Requêtes, puis Créer une requête en mode SQL, comme l'illustre la Base jointe plus haut.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
ViniAsco
Membre OOrganisé
Membre OOrganisé
Messages : 62
Inscription : 11 mai 2022 15:55

Re: Rechercher les valeurs avec un espace final

Message par ViniAsco »

OK, je n'étais même pas aller voir dans les requêtes.
Mais du coup, la requête ne corrige pas la base une fois pour toute, si ?
LibreOffice 7.4.7.2 sous macOS 15.6
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Rechercher les valeurs avec un espace final

Message par jeanmimi »

La requête corrige les erreurs de saisies des enregistrements du champ NOM à chaque fois qu'elle est lancée.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
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: Rechercher les valeurs avec un espace final

Message par Dude »

ViniAsco a écrit : 13 sept. 2024 07:06 Ma collègue saisit directement dans la base, sans passer par un formulaire.
C'est plus pratique quand il faut reprendre des infos d'un autre enregistrement.
C'est tellement pratique que tu as des erreurs de saisie et que tu postes un problème XY. Il n'y a qu'un formulaire pour faire ce contrôle.
L'espace est de toute façon, nécessaire dans un nom composé ou à particule.
Quant à ton histoire de reprendre des infos, un modèle relationnel s'il est bien fait, n'a pas à avoir de données redondantes.
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4343
Inscription : 06 oct. 2008 08:03

Re: Rechercher les valeurs avec un espace final

Message par Oukcha »

Bonjour,
Dernière visite le : 24 sept. 2024 16:33
Vous avez lu semble t-il les réponses qui vous ont été faites sans y donner de suite.
N'ayant plus de nouvelle, on peut en déduire que le problème est résolu ou ne se reproduit plus.

Merci de baliser par vous-même la prochaine fois.

Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps.
La politesse fait également partie de la philosophie du logiciel libre.

En cas d'erreur, contactez l'équipe de modération pour la réouverture du fil.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image