Les mémos

Fermer Tables

Fermer Requêtes

Fermer Formulaires

Fermer Etats

Fermer Modules

Fermer Base

Fermer Automation

Fermer Administration

Fermer Registre

Fermer String

Fermer Email CDO

Fermer Outlook

Fermer Net

Fermer Dates - Heures

Fermer Fichiers

Fermer Références

Fermer Vrac

Recherche



Je débute...

Fermer La normalisation

Fermer VBA

Lettre d'information
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
Captcha
Recopier le code :
Attention
Aucun support
par émail !

Utilisez le forum pour les questions/réponses concernant MsAccess et les codes que vous trouverez sur ce site.
Au sujet de l'auteur
L'auteur qui fréquente (fréquentait) le forum microsoft.public.fr.access a eu le plaisir d'être nommé MVP Office-Access de janvier 2003 à décembre 2011.

Qui sont les MVP ?

Visites

   visiteurs

   visiteur en ligne

Divers ;-)
Nous contacter

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes liés aux codes du site - Problèmes liés aux codes du site


clos par 3Stone le 12/04/2012 : 11:59  Sujet n° 579  fonction capitaliser prénom

le 07/02/2012 : 07:49
par miki

Anonyme

visiteur

Bonjour Pierre,A l'aide d'un module général copié sur le site trucs et astuces msaccess, j'essaie de mettre les prénoms avec la première lettre en majuscule même si les prénoms sont multiples, séparés par des espaces ou des tirets et cela ne fonctionne pas.Peux-tu me dire quelle peut en être la cause.Sinon est il possible d'avoir le bon résultat recherché = Jean-Pierre,en entrant les données dans une table ?Merci de m'aider.Cordialement,miki
Ecrire à miki  sujet clos  Haut

[]   

Réponse n° 1
--------
le 07/02/2012 : 10:44
par 3Stone

Anonyme

Administrateur

Bonjour,
 
Citation :

mettre les prénoms avec la première lettre en majuscule même si les prénoms sont multiples, séparés par des espaces ou des tirets et cela ne fonctionne pas

 
Mais si wink
 
Citation :

est il possible d'avoir le bon résultat recherché = Jean-Pierre,en entrant les données dans une table ?

 
J'espère que tu ne parle pas de saisir directement dans une table d
Cela ne se fait pas, autant utiliser Excel...

Pour utiliser cette fonction, il suffit de la placer dans une module général. Cela la rend utilisable de partout.
Ensuite, on va dans le formulaire de saisie et on place le code suivant dans l'événement "Après mise à jour" de la zone de texte concernée:

 
Code :
[NomPrenom] = CapitaliserPrénom([NomPrenom])
 
en adaptant éventuellement le nom du champ [NomPrenom]

C'est tout. Et a partir de ce moment, les saisies de noms composés sont automatiquement corrigés.
Bien sûr, cela ne corrige pas ceux qui sont déjà saisi, qu'il faudra éventuellement corriger avec une requête de mise à jour (en utilisant la fonction).

Cordialement,
Pierre(3stone)


3stone

  clos par 3Stone le 12/04/2012 : 11:59  Haut
Réponse n° 2
--------
le 07/02/2012 : 16:45
par miki

Anonyme

visiteur
Pierre,Voici ce que j'ai mis :Private Sub Prenom_AfterUpdate()[PRENOM] = CapitaliserPrenom([PRENOM])End Subça ne veut pas fonctionner, ça me met erreur, variable attendue et non module, que dois-je mettre ?
Merci 
miki
Ecrire à miki   clos par 3Stone le 12/04/2012 : 11:59  Haut
Réponse n° 3
--------
le 07/02/2012 : 17:12
par 3Stone

Anonyme

Administrateur

Bonjour,

Le module, tu l'as appelé "CapitaliserPrenom" ??
Tu ne peux pas, le nom des modules doivent être différents des fonctions qu'ils contiennent.

Prend l'habitude de préfixer le nom des modules par "mod_", ce qui fait "mod_CapitaliserPrenom"

Cordialement,
Pierre(3stone)


3stone

  clos par 3Stone le 12/04/2012 : 11:59  Haut
Réponse n° 4
--------
le 08/02/2012 : 09:46
par miki

Anonyme

visiteur
Pierre,Je ne sais pas pourquoi mais ça ne fonctionne toujours pas : dans le module :Function CapitaliserPrenom(Temp As String) As String Cette ligne est jaune' Objectif: Capitaliser les premières lettres des prénoms d'une chaîne de manière statique.' Ici, la particularité est que le séparateur peut aussi être un tiret ce qui interdit' l'utilisation de vbProperCase qui ne reconnaît que l'espace en qualité de séparateur.Dim L As Integer, I As IntegerCapitaliserPrenom = " "If IsNull(Temp) Or IsEmpty(Temp) Then Exit FunctionTemp = LCase$(Temp)L = Len(Temp)<7font> et cette ligne est rouge' met la 1ère lettre en majuscule et laisse les autres en minusculesTemp = UCase$(Mid$(Temp, 1, 1)) & Right$(Temp, L - 1)For I = 2 To L Step 1' Test si le caractère suivant est un séparateur de prénom   If Mid$(Temp, I, 1) = "-" Or Mid$(Temp, I, 1) = " " Then      ' tant que ce n'est pas la fin      If I < L Then         ' met en majuscule la 1ère lettre du prénom suivant et laisse les autres en minuscules         Temp = Mid$(Temp, 1, I) & UCase$(Mid$(Temp, I + 1, 1)) & Right$(Temp, L - I - 1)      End If   End IfNext ICapitaliserPrenom = TempEnd FunctionJe suppose qu'il y a une erreur ?Merci encore
Miki
Ecrire à miki   clos par 3Stone le 12/04/2012 : 11:59  Haut
Réponse n° 5
--------
le 08/02/2012 : 13:08
par 3Stone

Anonyme

Administrateur

Bonjour,

Il ne faut pas copier/coller simplement (ou bêtement) le code...
Il faut se donner la peine de l'écrire ou tout du moins de comparer si l'on a bien ce qui est écrit, si qui ne semble pas le cas!
 
Code : xhtml
L = Len(Temp)<7font>
 ne veut rien dire et est un copié/collé avec du code html.

Cordialement,
Pierre(3stone)


3stone

  clos par 3Stone le 12/04/2012 : 11:59  Haut
Réponse n° 6
--------
le 08/02/2012 : 13:31
par miki

Anonyme

visiteur
Pierre,Ouf ! ça y est cela fonctionne parfaitement, merci beaucoup pour ton aide.
Miki
Ecrire à miki   clos par 3Stone le 12/04/2012 : 11:59  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut