Bonjour
Pourriez vous m'expliquer comment automatiser le remplacement de caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer pareil.
--
A+
David
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jessy Sempere [MVP]
Bonjour
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
*************************************** Public Function RemoveAccents$(str$) Dim tmp$ Dim i%, X tmp = Trim(str) For i = 1 To Len(tmp) X = Asc(Mid(tmp, i, 1)) Select Case X Case 192 To 197: X = "A" Case 200 To 203: X = "E" Case 204 To 207: X = "I" Case 209: X = "N" Case 210 To 214: X = "O" Case 217 To 220: X = "U" Case 221: X = "Y" Case 224 To 229: X = "a" Case 232 To 235: X = "e" Case 236 To 239: X = "i" Case 241: X = "n" Case 240, 242 To 246: X = "o" Case 249 To 252: X = "u" Case 253, 255: X = "y" Case Else: X = Chr(X) End Select RemoveAccents = RemoveAccents & X Next End Function ***************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "David" a écrit dans le message de news:
Bonjour Pourriez vous m'expliquer comment automatiser le remplacement de caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer pareil.
-- A+ David
Bonjour
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
***************************************
Public Function RemoveAccents$(str$)
Dim tmp$
Dim i%, X
tmp = Trim(str)
For i = 1 To Len(tmp)
X = Asc(Mid(tmp, i, 1))
Select Case X
Case 192 To 197: X = "A"
Case 200 To 203: X = "E"
Case 204 To 207: X = "I"
Case 209: X = "N"
Case 210 To 214: X = "O"
Case 217 To 220: X = "U"
Case 221: X = "Y"
Case 224 To 229: X = "a"
Case 232 To 235: X = "e"
Case 236 To 239: X = "i"
Case 241: X = "n"
Case 240, 242 To 246: X = "o"
Case 249 To 252: X = "u"
Case 253, 255: X = "y"
Case Else: X = Chr(X)
End Select
RemoveAccents = RemoveAccents & X
Next
End Function
***************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"David" <David@discussions.microsoft.com> a écrit dans le message de
news:25EB65D4-B374-4178-9586-8883B483D104@microsoft.com...
Bonjour
Pourriez vous m'expliquer comment automatiser le remplacement de
caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer
pareil.
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
*************************************** Public Function RemoveAccents$(str$) Dim tmp$ Dim i%, X tmp = Trim(str) For i = 1 To Len(tmp) X = Asc(Mid(tmp, i, 1)) Select Case X Case 192 To 197: X = "A" Case 200 To 203: X = "E" Case 204 To 207: X = "I" Case 209: X = "N" Case 210 To 214: X = "O" Case 217 To 220: X = "U" Case 221: X = "Y" Case 224 To 229: X = "a" Case 232 To 235: X = "e" Case 236 To 239: X = "i" Case 241: X = "n" Case 240, 242 To 246: X = "o" Case 249 To 252: X = "u" Case 253, 255: X = "y" Case Else: X = Chr(X) End Select RemoveAccents = RemoveAccents & X Next End Function ***************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "David" a écrit dans le message de news:
Bonjour Pourriez vous m'expliquer comment automatiser le remplacement de caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer pareil.
-- A+ David
David
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ. Que signifie "Case 192 To 197: X = "A" Merci -- A+ David
Bonjour
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
*************************************** Public Function RemoveAccents$(str$) Dim tmp$ Dim i%, X tmp = Trim(str) For i = 1 To Len(tmp) X = Asc(Mid(tmp, i, 1)) Select Case X Case 192 To 197: X = "A" Case 200 To 203: X = "E" Case 204 To 207: X = "I" Case 209: X = "N" Case 210 To 214: X = "O" Case 217 To 220: X = "U" Case 221: X = "Y" Case 224 To 229: X = "a" Case 232 To 235: X = "e" Case 236 To 239: X = "i" Case 241: X = "n" Case 240, 242 To 246: X = "o" Case 249 To 252: X = "u" Case 253, 255: X = "y" Case Else: X = Chr(X) End Select RemoveAccents = RemoveAccents & X Next End Function ***************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "David" a écrit dans le message de news:
Bonjour Pourriez vous m'expliquer comment automatiser le remplacement de caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer pareil.
-- A+ David
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus
Comment faire pour appeler cette fonction dans la requete MAJ.
Que signifie "Case 192 To 197: X = "A"
Merci
--
A+
David
Bonjour
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
***************************************
Public Function RemoveAccents$(str$)
Dim tmp$
Dim i%, X
tmp = Trim(str)
For i = 1 To Len(tmp)
X = Asc(Mid(tmp, i, 1))
Select Case X
Case 192 To 197: X = "A"
Case 200 To 203: X = "E"
Case 204 To 207: X = "I"
Case 209: X = "N"
Case 210 To 214: X = "O"
Case 217 To 220: X = "U"
Case 221: X = "Y"
Case 224 To 229: X = "a"
Case 232 To 235: X = "e"
Case 236 To 239: X = "i"
Case 241: X = "n"
Case 240, 242 To 246: X = "o"
Case 249 To 252: X = "u"
Case 253, 255: X = "y"
Case Else: X = Chr(X)
End Select
RemoveAccents = RemoveAccents & X
Next
End Function
***************************************
--
@+
Jessy Sempere - Access MVP
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"David" <David@discussions.microsoft.com> a écrit dans le message de
news:25EB65D4-B374-4178-9586-8883B483D104@microsoft.com...
Bonjour
Pourriez vous m'expliquer comment automatiser le remplacement de
caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer
pareil.
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ. Que signifie "Case 192 To 197: X = "A" Merci -- A+ David
Bonjour
J'avais cette petite fonction qui fonctionnait il me semble :
Il suffit de l'appeler dans une requête de mise à jour
*************************************** Public Function RemoveAccents$(str$) Dim tmp$ Dim i%, X tmp = Trim(str) For i = 1 To Len(tmp) X = Asc(Mid(tmp, i, 1)) Select Case X Case 192 To 197: X = "A" Case 200 To 203: X = "E" Case 204 To 207: X = "I" Case 209: X = "N" Case 210 To 214: X = "O" Case 217 To 220: X = "U" Case 221: X = "Y" Case 224 To 229: X = "a" Case 232 To 235: X = "e" Case 236 To 239: X = "i" Case 241: X = "n" Case 240, 242 To 246: X = "o" Case 249 To 252: X = "u" Case 253, 255: X = "y" Case Else: X = Chr(X) End Select RemoveAccents = RemoveAccents & X Next End Function ***************************************
-- @+ Jessy Sempere - Access MVP
------------------------------------ Site @ccess : http://access.jessy.free.fr/ Pour l'efficacité de tous : http://www.mpfa.info/ ------------------------------------ "David" a écrit dans le message de news:
Bonjour Pourriez vous m'expliquer comment automatiser le remplacement de caracteres
accentuer (par exemple un é par un e) dans une table toujours nommer pareil.
-- A+ David
Eric
Bonjour,
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter. Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192 et 197, cela correspond au A surmonté d'un caractère, par exemple d'un accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour les autres
Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour,
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus
Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée
globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module
sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter.
Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192
et 197, cela correspond au A surmonté d'un caractère, par exemple d'un
accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour
les autres
Merci
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter. Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192 et 197, cela correspond au A surmonté d'un caractère, par exemple d'un accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour les autres
Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
David
Merci Eric pour ces explications Un dernier "peut etre" conseil Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le point virgule etc) par un espace -- A+ David
Bonjour,
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter. Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192 et 197, cela correspond au A surmonté d'un caractère, par exemple d'un accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour les autres
Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci Eric pour ces explications
Un dernier "peut etre" conseil
Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le
point virgule etc) par un espace
--
A+
David
Bonjour,
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus
Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée
globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module
sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter.
Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192
et 197, cela correspond au A surmonté d'un caractère, par exemple d'un
accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour
les autres
Merci
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci Eric pour ces explications Un dernier "peut etre" conseil Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le point virgule etc) par un espace -- A+ David
Bonjour,
Merci pour la reponse mais n'etant pas un expert peux tu eclairer un peu plus Comment faire pour appeler cette fonction dans la requete MAJ.
Tu copies et colles la fonction de Jessy dans un module de portée globale (Onglet Modules) dans la fenêtre de la bd. Tu sauves ce module sous le nom modRemoveAccent.
Tu crées une requête Mise à jour avec ta table et le champ à traiter. Sur la ligne Mise à jour du champ (dans la grille) tu mets :
RemoveAccents$([NomChamp]) ' à adapter
Que signifie "Case 192 To 197: X = "A"
On analyse le code Ascii du caractère, si celui-ci est compris entre 192 et 197, cela correspond au A surmonté d'un caractère, par exemple d'un accent(À), tilde(Ã), d'un rond (Å), ... on le rempace par A. Idem pour les autres
Merci
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
Tu peux faire une fonction comme celle-ci: Function CaracteresInterdits(str$) Dim tmp As String, i As Integer, x As String tmp = Trim(str$) For i = 1 To Len(tmp) x = Asc(Mid(tmp, i, 1)) Select Case x ' pour éliminer les caractères suivants : ' 34=":39=':44=,:46=.:58=: :59=; Case 34, 39, 44, 46, 58, 59: x = Chr(32) Case Else: x = Chr(x) End Select CaracteresInterdits = CaracteresInterdits & x Next i End Function
mais tu peux aussi ajouter les lignes ' pour éliminer les caractères suivants : ' 34=":39=':44=,:46=.:58=: :59=; Case 34, 39, 44, 46, 58, 59: x = Chr(32) avant l'instruction Case Else dans la fonction de Jessy. Elle sera dénaturée car initialement elle ne supprimait que les accents.
Mon choix se porterait sur l'écriture de la fonction plutôt que sur la dénaturation de celle de Jessy compte tenue que cette dernière a de fortes chances d'être très souvent utilisée et non celle supprimant les virgules, points-virgule ... En plus, ça sera plus souple d'utilisation.
Dans la requête mise à jour ca donnerait quelquechose comme CaracteresInterdits$(RemoveAccents$([NomChamp]))
Merci Eric pour ces explications Un dernier "peut etre" conseil Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le point virgule etc) par un espace
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Tu peux faire une fonction comme celle-ci:
Function CaracteresInterdits(str$)
Dim tmp As String, i As Integer, x As String
tmp = Trim(str$)
For i = 1 To Len(tmp)
x = Asc(Mid(tmp, i, 1))
Select Case x
' pour éliminer les caractères suivants :
' 34=":39=':44=,:46=.:58=: :59=;
Case 34, 39, 44, 46, 58, 59: x = Chr(32)
Case Else: x = Chr(x)
End Select
CaracteresInterdits = CaracteresInterdits & x
Next i
End Function
mais tu peux aussi ajouter les lignes
' pour éliminer les caractères suivants :
' 34=":39=':44=,:46=.:58=: :59=;
Case 34, 39, 44, 46, 58, 59: x = Chr(32)
avant l'instruction Case Else dans la fonction de Jessy. Elle sera
dénaturée car initialement elle ne supprimait que les accents.
Mon choix se porterait sur l'écriture de la fonction plutôt que sur la
dénaturation de celle de Jessy compte tenue que cette dernière a de
fortes chances d'être très souvent utilisée et non celle supprimant les
virgules, points-virgule ... En plus, ça sera plus souple d'utilisation.
Dans la requête mise à jour ca donnerait quelquechose comme
CaracteresInterdits$(RemoveAccents$([NomChamp]))
Merci Eric pour ces explications
Un dernier "peut etre" conseil
Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le
point virgule etc) par un espace
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Tu peux faire une fonction comme celle-ci: Function CaracteresInterdits(str$) Dim tmp As String, i As Integer, x As String tmp = Trim(str$) For i = 1 To Len(tmp) x = Asc(Mid(tmp, i, 1)) Select Case x ' pour éliminer les caractères suivants : ' 34=":39=':44=,:46=.:58=: :59=; Case 34, 39, 44, 46, 58, 59: x = Chr(32) Case Else: x = Chr(x) End Select CaracteresInterdits = CaracteresInterdits & x Next i End Function
mais tu peux aussi ajouter les lignes ' pour éliminer les caractères suivants : ' 34=":39=':44=,:46=.:58=: :59=; Case 34, 39, 44, 46, 58, 59: x = Chr(32) avant l'instruction Case Else dans la fonction de Jessy. Elle sera dénaturée car initialement elle ne supprimait que les accents.
Mon choix se porterait sur l'écriture de la fonction plutôt que sur la dénaturation de celle de Jessy compte tenue que cette dernière a de fortes chances d'être très souvent utilisée et non celle supprimant les virgules, points-virgule ... En plus, ça sera plus souple d'utilisation.
Dans la requête mise à jour ca donnerait quelquechose comme CaracteresInterdits$(RemoveAccents$([NomChamp]))
Merci Eric pour ces explications Un dernier "peut etre" conseil Comment remplacer des caracteres clavier (ex l'apostrophe ,le guillemet, le point virgule etc) par un espace
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
ooops !!! ce n'est pas x as String mais x as Integer
Dim tmp As String, i As Integer, x As String
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
ooops !!!
ce n'est pas x as String mais x as Integer
Dim tmp As String, i As Integer, x As String
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr