Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PBM : concatenation de champs texte, en supprimant les accents

9 réponses
Avatar
souricette
Bonjourà tous !
dans un formulaire, je "génère" des adresses mail par concaténation des noms
et prénom des individus saisis.
formule : [E-mailAdm] =Minuscule([Prénom]) & "." & Minuscule([NomUsage]) &
"@notre.indicatif.fr"
Mon souci est le suivant : dans le champ [Prénom], je dois saisir les
prénoms avec leurs éventuels accents
par contre, dans la concaténation, le prénom ne doit pas être accentué
QUESTION : comment dois-je modifier ma formule pour y parvenir ?
il existe bien une fonction intégrée Access qui épure les espaces
excédentaires,
il doit bien y en avoir une pour ce genre de chose, non ?

9 réponses

Avatar
ze Titi
Bonjour souricette

Pour supprimer les accents:

Public Function EnleveAccent(strMot As String) As String
strMot = Replace(strMot, "é", "e")
strMot = Replace(strMot, "è", "e")
strMot = Replace(strMot, "ê", "e")
strMot = Replace(strMot, "à", "a")
strMot = Replace(strMot, "ù", "u")
strMot = Replace(strMot, "ç", "c")
strMot = Replace(strMot, "ô", "o")
strMot = Replace(strMot, "î", "i")
strMot = Replace(strMot, "ï", "i")
strMot = Replace(strMot, "É", "E")
strMot = Replace(strMot, "È", "E")
strMot = Replace(strMot, "Ê", "E")
strMot = Replace(strMot, "Ë", "E")
strMot = Replace(strMot, "Î", "o")
strMot = Replace(strMot, "Ï", "o")
strMot = Replace(strMot, "À", "o")
strMot = Replace(strMot, "Â", "o")
strMot = Replace(strMot, "Ô", "o")
strMot = Replace(strMot, "Ö", "o")
EnleveAccent = strMot
End Function

tonMot=EnleveAccent(tonMot)

Pour les espaces:

tonMot=Replace(tonMot," ","")


Dans ton message
Bonjourà tous !
dans un formulaire, je "génère" des adresses mail par concaténation des noms
et prénom des individus saisis.
formule : [E-mailAdm] =Minuscule([Prénom]) & "." & Minuscule([NomUsage]) &
"@notre.indicatif.fr"
Mon souci est le suivant : dans le champ [Prénom], je dois saisir les
prénoms avec leurs éventuels accents
par contre, dans la concaténation, le prénom ne doit pas être accentué
QUESTION : comment dois-je modifier ma formule pour y parvenir ?
il existe bien une fonction intégrée Access qui épure les espaces
excédentaires,
il doit bien y en avoir une pour ce genre de chose, non ?


--
Voilou !
Cordialement,

Ze Titi

Avatar
souricette
Waow !
Et comment je place ça dans le générateur d'expression ?
Je me contenterais bien de suprimer les plus fréquents : é, è, ë ; je ne
suis même pas sûre de connaître un seul prénom existant avec ê ou à
S'il s'agit d'une fonction "utilisateur", il va falloir me prendre par la
main, parce que ce serait la première que j'en écrirais une.....


Bonjour souricette

Pour supprimer les accents:

Public Function EnleveAccent(strMot As String) As String
strMot = Replace(strMot, "é", "e")
strMot = Replace(strMot, "è", "e")
strMot = Replace(strMot, "ê", "e")
strMot = Replace(strMot, "à", "a")
strMot = Replace(strMot, "ù", "u")
strMot = Replace(strMot, "ç", "c")
strMot = Replace(strMot, "ô", "o")
strMot = Replace(strMot, "î", "i")
strMot = Replace(strMot, "ï", "i")
strMot = Replace(strMot, "É", "E")
strMot = Replace(strMot, "È", "E")
strMot = Replace(strMot, "Ê", "E")
strMot = Replace(strMot, "Ë", "E")
strMot = Replace(strMot, "Î", "o")
strMot = Replace(strMot, "Ï", "o")
strMot = Replace(strMot, "À", "o")
strMot = Replace(strMot, "Â", "o")
strMot = Replace(strMot, "Ô", "o")
strMot = Replace(strMot, "Ö", "o")
EnleveAccent = strMot
End Function

tonMot=EnleveAccent(tonMot)

Pour les espaces:

tonMot=Replace(tonMot," ","")


Dans ton message
Bonjourà tous !
dans un formulaire, je "génère" des adresses mail par concaténation des noms
et prénom des individus saisis.
formule : [E-mailAdm] =Minuscule([Prénom]) & "." & Minuscule([NomUsage]) &
"@notre.indicatif.fr"
Mon souci est le suivant : dans le champ [Prénom], je dois saisir les
prénoms avec leurs éventuels accents
par contre, dans la concaténation, le prénom ne doit pas être accentué
QUESTION : comment dois-je modifier ma formule pour y parvenir ?
il existe bien une fonction intégrée Access qui épure les espaces
excédentaires,
il doit bien y en avoir une pour ce genre de chose, non ?


--
Voilou !
Cordialement,

Ze Titi






Avatar
ze Titi
Bonjour souricette

En fait, le code commençant par "Public Function..." et se terminant
par "End Function" est une fonction à coller dans un module quelconque
(mais dont le nom ne doit pas être EnleveAccent.

Une fois que c'est fait, dans les propriétés du champs prénom de ton
formulaire dans l'onglet Evènements, tu as une ligne "Après mise à
jour" avec une liste déroulante. Dans cette liste déroulante, tu
sélectionnes "Procédure évènementielle" et tu cliques sur le bouton
"..." à droite. Tu te retrouves alors dans l'éditeur VBA.

Tu places la ligne suivante

[E-mailAdm] =LCase(EnleveAccent(Replace([Prénom]," ",""))) & "." &
LCase([NomUsage]) & "@notre.indicatif.fr"

Dis-nous !


Dans ton message
Waow !
Et comment je place ça dans le générateur d'expression ?
Je me contenterais bien de suprimer les plus fréquents : é, è, ë ; je ne
suis même pas sûre de connaître un seul prénom existant avec ê ou à
S'il s'agit d'une fonction "utilisateur", il va falloir me prendre par la
main, parce que ce serait la première que j'en écrirais une.....


Bonjour souricette

Pour supprimer les accents:

Public Function EnleveAccent(strMot As String) As String
strMot = Replace(strMot, "é", "e")
strMot = Replace(strMot, "è", "e")
strMot = Replace(strMot, "ê", "e")
strMot = Replace(strMot, "à", "a")
strMot = Replace(strMot, "ù", "u")
strMot = Replace(strMot, "ç", "c")
strMot = Replace(strMot, "ô", "o")
strMot = Replace(strMot, "î", "i")
strMot = Replace(strMot, "ï", "i")
strMot = Replace(strMot, "É", "E")
strMot = Replace(strMot, "È", "E")
strMot = Replace(strMot, "Ê", "E")
strMot = Replace(strMot, "Ë", "E")
strMot = Replace(strMot, "Î", "o")
strMot = Replace(strMot, "Ï", "o")
strMot = Replace(strMot, "À", "o")
strMot = Replace(strMot, "Â", "o")
strMot = Replace(strMot, "Ô", "o")
strMot = Replace(strMot, "Ö", "o")
EnleveAccent = strMot
End Function

tonMot=EnleveAccent(tonMot)

Pour les espaces:

tonMot=Replace(tonMot," ","")


Dans ton message
Bonjourà tous !
dans un formulaire, je "génère" des adresses mail par concaténation des
noms et prénom des individus saisis.
formule : [E-mailAdm] =Minuscule([Prénom]) & "." & Minuscule([NomUsage]) &
"@notre.indicatif.fr"
Mon souci est le suivant : dans le champ [Prénom], je dois saisir les
prénoms avec leurs éventuels accents
par contre, dans la concaténation, le prénom ne doit pas être accentué
QUESTION : comment dois-je modifier ma formule pour y parvenir ?
il existe bien une fonction intégrée Access qui épure les espaces
excédentaires,
il doit bien y en avoir une pour ce genre de chose, non ?


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi



Avatar
souricette
ça risque de poser quelques soucis :


Bonjour souricette

En fait, le code commençant par "Public Function..." et se terminant
par "End Function" est une fonction à coller dans un module quelconque
(mais dont le nom ne doit pas être EnleveAccent.
Je peux l'appeler "OteAccent", par exemple, ou j'ai mal identifié la

précaution que tu me demandes de prendre ?

Une fois que c'est fait, dans les propriétés du champs prénom de ton
formulaire dans l'onglet Evènements, tu as une ligne "Après mise à
jour" avec une liste déroulante. Dans cette liste déroulante, tu
sélectionnes "Procédure évènementielle" et tu cliques sur le bouton
"..." à droite. Tu te retrouves alors dans l'éditeur VBA.
Nan-nan-nan : je dois GARDER les accents dans le champs [Prénom], sinon, je

ne les tape pas à la saisie, et le tour est joué.
par contre dans les propriétés du champs [e-mailAdm],
à la ligne "Sur réception focus" j'ai posé la macro "MàJ_E-mailAdm".
je jette de temps en temps (éloigné) un oeil sur l'éditeur VBA, mais je n'y
ai jamais risqué les doigts....

Tu places la ligne suivante

[E-mailAdm] =LCase(EnleveAccent(Replace([Prénom]," ",""))) & "." &
LCase([NomUsage]) & "@notre.indicatif.fr"
S'il était possible que cette ligne puisse trouver sa place dans le champs :

EXPRESSION qui se trouve dans la Macro, cela m'arrangerait beaucoup
dans cette macro j'ai une seule ligne :
ACTION : DéfinirValeur
ELEMENT : [Formulaires]![Frm Candidats]![E-mailAdm]
EXPRESSION : Minuscule([Prénom]) & "." & Minuscule([NomUsage]) &
"@notre.indicatif.fr"

et aucune condition pour la lancer, parce que cette adresse existe dans tous
les cas et je n'arrive pas sur le champs de l'E-mail Admn avant d'avoir saisi
tout l'état civil de la personne.


Dis-nous !
Help wanted....


Merci d'avance

Avatar
ze Titi
Je peux l'appeler "OteAccent", par exemple, ou j'ai mal identifié la
précaution que tu me demandes de prendre ?


Sans problème.

Nan-nan-nan : je dois GARDER les accents dans le champs [Prénom], sinon, je
ne les tape pas à la saisie, et le tour est joué.


Mal compris... Les accents sont conservés dans le champ Prénom. Si tu
regardes bien la ligne de code, elle met à jour le champ E-mailAdm,
elle ne touche pas au contenu de ton champ Prénom, elle manipule son
contenu pour l'affecter au champ email mais c'est tout.

par contre dans les propriétés du champs [e-mailAdm],
à la ligne "Sur réception focus" j'ai posé la macro "MàJ_E-mailAdm".


ACTION : DéfinirValeur
ELEMENT : [Formulaires]![Frm Candidats]![E-mailAdm]
EXPRESSION : Minuscule(EnleveAccent([Prénom])) & "." &
Minuscule([NomUsage]) & "@notre.indicatif.fr"

Pas garanti...

je jette de temps en temps (éloigné) un oeil sur l'éditeur VBA, mais je n'y
ai jamais risqué les doigts....


Tu devrais, beaucoup plus puissant/pratique/paramétrable que les macros
!

Courage!

--
Voilou !
Cordialement,

Ze Titi

Avatar
souricette
YES !


ACTION : DéfinirValeur
ELEMENT : [Formulaires]![Frm Candidats]![E-mailAdm]
EXPRESSION : Minuscule(EnleveAccent([Prénom])) & "." &
Minuscule([NomUsage]) & "@notre.indicatif.fr"

Pas garanti...
ça marche !

Impec !
Merci
--
Voilou !
Cordialement,

Ze Titi





Avatar
souricette
je jette de temps en temps (éloigné) un oeil sur l'éditeur VBA, mais je n'y
ai jamais risqué les doigts....


Tu devrais, beaucoup plus puissant/pratique/paramétrable que les macros
!

Courage!

--
Voilou !
Cordialement,

Ze Titi



Ben....justement :
tant de puissance..........
entre mes si petits doigts malhabiles.................
tout ça tout ça..........
[complexe de la demi-fourmis should be cut off]


Avatar
ze Titi
Crois-moi, très vite on ne peut plus s'en passer... Si tu mets le doigt
dedans, tu y passes tout entier(e) et c'est tellement bon... :o)

Je te conseille la lecture du site de Raymond Seneque pour y aller
progressivement :

http://officesystem.access.free.fr/vba/index.htm

Bonne lecture !

Dans ton message

je jette de temps en temps (éloigné) un oeil sur l'éditeur VBA, mais je n'y
ai jamais risqué les doigts....


Tu devrais, beaucoup plus puissant/pratique/paramétrable que les macros
!

Courage!

--
Voilou !
Cordialement,

Ze Titi



Ben....justement :
tant de puissance..........
entre mes si petits doigts malhabiles.................
tout ça tout ça..........
[complexe de la demi-fourmis should be cut off]


--
Voilou !
Cordialement,

Ze Titi



Avatar
souricette
Merci beaucoup !