Bonjour,
Dans la requête UPDATE, je ne rajouterai pas de ".", car si tu l'exécute plus d'une fois, tu te retrouves avec plusieurs points.
Tu peux par exemple te contenter de convertir en majuscules :
1 2 3 4 5 6
| UPDATE New_person
SET New_person.First_name = StrConv([First_name],3),
New_person.Initiale1 = StrConv(Initiale1, 1),
New_person.Initiale2 = StrConv(Initiale2, 1),
New_person.Initiale3 = StrConv(Initiale3, 1),
New_person.Nameperson = StrConv([Nameperson],1); |
Ensuite, si on ne s'intéresse qu'à la partie SELECT de la requête ajout de données, tu gère le cas des champs vides avec IIF:
1 2 3 4 5 6
| SELECT New_person.Title & " " & New_person.First_name & " "
& IIF(Len(Nz(New_person.Initiale1, ""))>0, New_person.Initiale1 & ".", "")
& IIF(Len(Nz(New_person.Initiale2, ""))>0, New_person.Initiale2 & ".", "")
& IIF(Len(Nz(New_person.Initiale3, ""))>0, New_person.Initiale3 & ".", "")
& " " & New_person.Nameperson AS Expr1
FROM New_person; |
Nz sert à remplacer
Null par une valeur de son choix (deuxième argument de Nz(..,..)).
Ici c'est une chaîne vide ("").
Si la longueur de ce qui est renvoyé par Nz(..,..) est supérieure à 0, IIF renvoie le deuxième argument (New_person.Initiale1 & "."),
sinon IIF renvoie le troisième argument ("").
A+
Partager