Numéro de facture automatique

Résolu
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 - 27 mars 2011 à 13:12
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 - 31 mars 2011 à 10:18
bonjour,
j'ai une application de facturation en vb2005 avec une BDD access, ce que je veux c'est mettre un numéro automatique à chaque nouvelle facture tout en prenant en considération l'année comme le modèle ci-après:
FC01-2011

alors quand je clic sur le button ajouter je veux qu'il m'affiche le nouveau numéro de la nouvelle facture dans le txtnum.

merci pour votre aide

7 réponses

4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 mars 2011 à 12:38
Je vois deux solutions
1)
hex(cint(Mid(DateAndTime.Timer.ToString, 7,3))) &"-"& date.Now.Year

Timer est utiliser pour avoir une base aléatoire et unique. G pris 3 caractères tu peut en prendre plus (attention au point et ne pas dépasser un int). la conversion en hexa est pour le fun, pour avoir des "ABCD...F"

2)
Tu créer une variable et à chaque nouvelle facture tu l'incrémente de 1. Tu la converti en hexa et tu ajoute une série de 0. Exemple "000001","000002"..."00000A"..."0000B1" etc. Cela te garanti que ta facture a un numéro unique et tu sera facilement combien tu en as fait. Quand tu ferme ton prog tu enregistre ta variable dans un fichier ou autre et à l'ouverture tu va la récupérer pou ne pas recommencer à zérro. Voici un exemple de code
v_NbHexa = v_NbHexa +1
MsgBox(Strings.Right("00000" & Hex(v_NbHexa + 1), 5)) &"-"& date.Now.Year

Le plus simple c la méthode 1 car tu c que la valeur et unique et tu peux l'utiliser pour sauver les factures sur le réseau. La deux t'obligera à des contrôles si tu veux enregistrer en réseau.
3
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
28 mars 2011 à 15:33
Déjà il faut que tu me dises si une d solution que je transmis t'intéresse et la quelle.
Si je résume la première généré aléatoirement un numéro
La seconde tu dois gérer toi même le numéro


Tu dis "je veux récuperer le dernier numéro de facture stocké dans ma BDD" Pour quoi ne par faire du champ Facture un numéro auto? Comme ça tu laisse la db gérer.

3ème solution que tu peux utiliser.

Que choisis tu?
2
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
28 mars 2011 à 15:07
Bonjour 4u4me4us,
merci de ton intention à ma question mais comme je suis débutant j'ai pas bien piger votre réponse svp détaille du code.
en plus je veux récuperer le dernier numéro de facture stocké dans ma BDD et afficher le nouveau numéro dans le textbox.
merci pour votre aide c très urgent
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
29 mars 2011 à 20:09
Bonjour,
c la prmière solution que je trouve idéale puisque je suis débutant et je suis d'accord pour votre proposition pour créer un champ facture un numéro automatique.
mais toujours comme ce modéle FC01-2011


merci infiniment.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
29 mars 2011 à 21:11
Je détaille de droite à gauche :
hex(cint(Mid(DateAndTime.Timer.ToString, 7,3))) &"-"& date.Now.Year
code retourne
----------------------------------------------------------
date.Now.Year l'année actuel
& "-" & & set à concaténé donc à la chaine en concat "-"
DateAndTime.Timer.ToString retourne le temps en s ce qui tape pour en savoir plus
Mid(DateAndTime.Timer.ToString, 7,3) Mid coupe la chaine là après le 7ème en prend 3 lettre
cint( converti le tout en entier
hex( converti tout en hexa

J'ai pensé à autre choses vu que tu dis "je veux récuperer le dernier numéro" et tu dis "mais toujours comme ce modéle FC01-2011". Il faut que le champ de facture soit un string et que l'id de la table soit un numéro auto. Pour retrouver le dernier tu fera une requête sur l'id.
0
elwadeh Messages postés 55 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 28 juin 2018 1
30 mars 2011 à 20:39
Bonjour,
merci pour votre réponse
je veux juste savoir qu'est ce que je doit faire comme déclaration dans le form et qu'est ce que je doit faire dans le button ajouter pour qu'il m'affiche le nouveau numéro.
merci d'avance.
0
4u4me4us Messages postés 780 Date d'inscription lundi 22 janvier 2007 Statut Membre Dernière intervention 30 octobre 2013 3
31 mars 2011 à 10:18
Tu dis "je doit faire dans le button ajouter pour qu'il m'affiche le nouveau numéro."
dans ton bouton tu peut faire MsgBox(Hex(CInt(Mid(DateAndTime.Timer.ToString, 7, 3))))
0
Rejoignez-nous