OVH Cloud OVH Cloud

Caractères spéciaux

3 réponses
Avatar
SOS
Bonjour

Comment éliminer les caractères spéciaux d'une table de descriptions, (Ex:
retour de chariot) par requête, sans avoir à sélectionner le caractère et
faire un Find and replace. Ce dernier ne traite qu'environ 16000 a 19000
lignes à la fois alors que mes tables contiennent plus de 500,000
enregistrements.

Merci à l'avance

--
Claire

3 réponses

Avatar
bourdugephilippe
a ma connaissance ce n'est pas possible au travers d'une requête, mais on peut
contourner le problème en faisant une boucle et en travaillant sur chaque
enregistrement et en traitant par une fonction le texte d'un champs.
le principe est de déclarer une variabe recordset
dim rs as recordset

rs=currentdb.openrecordset ("ma table")

rs.move first
do until rs.EOF
rs.edit
rs.[mon_champs]=ma_fonction(rs![mon_champs])
rs.update
rs.movenext
loop

private function ma_fonction(byval chaine as string)

la il faut écrire le traitement de ta chaine de caractère

end function

si tu as du mal tu peux toujours me donner le nom de ta table, le nom du champs
et les caractères spéciaux que tu souhaites remplacer et par quoi tu veux les
remplacer. Je tenterai de t'aider.
Avatar
Eric
Bonjour Claire,

Avec une requête Mise à jour, ca ne passe pas ?
Exemple pour enlever le caractère de retour à la ligne dans un champ
Description :

UPDATE Table1 SET Table1.Description = Replace([Description],Chr(13)+Chr
(10)," "). On remplace ici le retour à la ligne par un espace.

SQL que tu peux coller directement dans la fenêtre SQL du concepteur de
requête en adaptant les noms de la table et du champ.

A+
Eric

"SOS" écrivait
news:qIhsd.36130$:

Bonjour

Comment éliminer les caractères spéciaux d'une table de descriptions,
(Ex: retour de chariot) par requête, sans avoir à sélectionner le
caractère et faire un Find and replace. Ce dernier ne traite
qu'environ 16000 a 19000 lignes à la fois alors que mes tables
contiennent plus de 500,000 enregistrements.

Merci à l'avance

--
Claire





Avatar
Antoine Labusquière
Tu peux faire une fonction pour ça:
Après, il te suffit de l'appeler dans une requête sélection (ça permet de
supprimer ces caractères à l'affichage, sans pour autant modifier les
données), ou alors dans une requête mise à jour, pour épurer toutes tes
données.

le vbcrlf est une constante pour le retour chariot.


Function Epurer_Texte(chaine As String) As String

Epurer_Texte = Replace(chaine, vbCrLf, ";")

End Function

"SOS" a écrit dans le message de
news:qIhsd.36130$
Bonjour

Comment éliminer les caractères spéciaux d'une table de descriptions, (Ex:
retour de chariot) par requête, sans avoir à sélectionner le caractère et
faire un Find and replace. Ce dernier ne traite qu'environ 16000 a 19000
lignes à la fois alors que mes tables contiennent plus de 500,000
enregistrements.

Merci à l'avance

--
Claire