OVH Cloud OVH Cloud

numéro auto - concaténation

2 réponses
Avatar
Damien
Bonjour à toutes & tous,

Je suis actuellement en train de faire une petite BD reprenant mes Clients,
Fournisseurs, etc.
Le numéro de facture que j'attribue est déterminé par :
- deux chiffres reprenant l'année
- slach
- le numéro de la facture proprement dit. (ex.: 03/0022)

Je souhaiterais que le tout s'incrémente automatiquement en respectant
bien-entendu l'année. Là ou ca se complique encore, c'est que j'aimerais par
exemple pouvoir facturer le 2 janvier à la date du 31/12 de l'année
précédante. Est-ce possible, en passant via une table année en annexe ? Il
faut également garder l'historique.

D'avance merci pour l'aide que vous me porterez.
Damien

2 réponses

Avatar
Fred M.
Ami "Tordu*" bonjour ! :-)
Il y a bien une solution, mais es-tu prêt à tremper dans
le VBA ou veux-tu le faire exclusivement avec une macro
(nettement + lourd et + compliqué) ?

Fred.
* Je fais référence au 12 pour un 2 janvier ! ;-)

-----Message d'origine-----
Bonjour à toutes & tous,

Je suis actuellement en train de faire une petite BD
reprenant mes Clients,

Fournisseurs, etc.
Le numéro de facture que j'attribue est déterminé par :
- deux chiffres reprenant l'année
- slach
- le numéro de la facture proprement dit. (ex.: 03/0022)

Je souhaiterais que le tout s'incrémente automatiquement
en respectant

bien-entendu l'année. Là ou ca se complique encore, c'est
que j'aimerais par

exemple pouvoir facturer le 2 janvier à la date du 31/12
de l'année

précédante. Est-ce possible, en passant via une table
année en annexe ? Il

faut également garder l'historique.

D'avance merci pour l'aide que vous me porterez.
Damien


.



Avatar
Fred. M.
Bon, je te donne donc le mécanisme à suivre en VBA :
- Puisque ta facture comporte un "/" c'est donc forcément
un champ de type texte; donc on va pouvoir le disséquer et
le reconstruire...
Donc pour le reconstruire :
1) Extraire avec la fction month le mois en numérique
(après un if testant ton 2 janvier)
2) convertir cette valeur en alphanumérique avec la fction
Str
3) Affecter à une variable x la concaténaténation des 2
valeur 1) et 2)
4) Lancer une requete qui fait un comptage des lignes avec
un critère du type "WHERE Champ LIKE '" & x & '*" et
stocker ce résultat ds une variable; ce qui permet de
récupérer le nombre de facture ds le mois déjà enregistrée.
5) Ajouter 1 à cette valeur, la convertir à son tour avec
Str en prenant soin de mettre avant la fonction format
pour pouvoir obtenir un valeur de type 001 sinon il ne
prendra que 1 au final
6) Reconcaténer le tout et balancer la valeur ds le champ
qui va bien...
...faire mijoter et servir bien chaud... C prêt :-)


-----Message d'origine-----
Bonjour à toutes & tous,

Je suis actuellement en train de faire une petite BD
reprenant mes Clients,

Fournisseurs, etc.
Le numéro de facture que j'attribue est déterminé par :
- deux chiffres reprenant l'année
- slach
- le numéro de la facture proprement dit. (ex.: 03/0022)

Je souhaiterais que le tout s'incrémente automatiquement
en respectant

bien-entendu l'année. Là ou ca se complique encore, c'est
que j'aimerais par

exemple pouvoir facturer le 2 janvier à la date du 31/12
de l'année

précédante. Est-ce possible, en passant via une table
année en annexe ? Il

faut également garder l'historique.

D'avance merci pour l'aide que vous me porterez.
Damien


.