Concaténation et incrémentation

codesab Messages postés 1 Date d'inscription lundi 25 juillet 2005 Statut Membre Dernière intervention 25 juillet 2005 - 25 juil. 2005 à 18:35
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 25 juil. 2005 à 18:49
Bonjour,


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />
Je réalise une petite BDD et je connais très peu la programmation en VB.

Mon cas est le suivant :


Je souhaite stocker dans ma table facture un champ affichant le résultat d'un calcul de numéro de facture. Ce numéro est de type alphanumérique. Il ressemblerait à celui-ci : "F000001" (concaténation d'une lettre constante et d'un numéro à 6 chiffres).


A chaque nouvel enregistrement, le numéro doit s'incrémenter de 1 (par rapport au dernier enregistrement effectué).
Le permier numéro de facture ne commencera pas à "F000001" mais sera par exemple "F001200".



Quelqu'un pourrait-il me donner quelques conseils pour ça ?
Moi je pensais créer une function VB, mais étant très novice en la matière et après plusieurs essais sans résultat, je m'en remets à des plus connaisseurs que moi.

Merci d'avance.

1 réponse

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
25 juil. 2005 à 18:49
Salut
Pour créer un nouveau n° de facture, il faut que tu connaisse le dernier enregistré.
Hélas, si ce n° de facture comporte une lettre, tu ne pourras pas faire de recherche de Max --> Vois si tu peux te défaire du F qui est une constante et ne stocker que le n°.
(Je suppose que tu sais gérer une requète SQL vers ta DB)

-1- Récupérer le dernier n° = le plus grand
Récupérer ce chiffre dans un RecordSet avec la requète :
Select Max(NoDeFacture) From mesFactures

-2- Créer un nouveau n° :
Il te suffira d'incrémenter le chiffre récupéré

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
0