1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Problèmes liés aux codes du site
Sujet n° 579 |
fonction capitaliser prénom |
le 07/02/2012 : 07:49 par miki
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 |
|
|
Réponse n° 1 -------- le 07/02/2012 : 10:44 par 3Stone
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 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 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)
|
|
|
Réponse n° 4 -------- le 08/02/2012 : 09:46 par miki
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 |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|