---Soumis par Dev Ashish---
Incrémente la portion numérique d'une chaîne.
(Q) J'ai un champ qui contient des valeurs du genre "REC-1", "REC-2", "REC-3" etc. Pour de nouveaux enregistrements, j'aimerais pouvoir automatiquement incrémenter la portion numérique de un.
(A) Utiliser les fonctions Right et DMax pour retourner la plus grande valeur du champ "FOO" et la concaténer à la fin de la portion "REC-". Vous pouvez soi utiliser l'exemple suivant placé dans la propriété DefaultValue du champ ou en utilisant la procédure événementielle AfterUpdate du formulaire ou d'un autre contrôle. Par exemple, si le nom du champ est "FOO" et que celui de la table est FOOTable, l'expression serait
="REC-" & right(DMax("FOO", "FOOTable"), _ Len(DMax("FOO", "FOOTable")) - _ InStr(1, DMax("FOO", "FOOTable"), "-")) + 1
Note: Comme l'appel répété à la fonction DMax peut ralentir cette opération sur une grande table, je ne suggère pas de l'assigner à la propriété DefaultValue. À la place, assigner cette valeur à un contrôle caché sur votre formulaire et qui est lié au champ FOO. De cette façon, vous n'avez qu'à utiliser DMax qu'une fois. Par exemple,
Private Sub SomeField_AfterUpdate() Dim strMax as string strMax =DMax("FOO", "FOOTable") me!HiddenFooCtl = "REC-" & right(strMax, _ len(strMax) - _ Instr(1,strMax, "-")) +1 End Sub