Probleme de compteur

cs_lorenzo972 Messages postés 28 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 24 août 2004 - 23 août 2004 à 16:25
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 - 4 févr. 2007 à 03:39
Bonjour à tous,

je suis actuellement entrain d'implémenter une fonction qui aura pour but de m'afficher un numéro d'affaire de la façon suivante:
mois / année/ numéro de l'affaire ds le mois en cours

Je n'arrive pas à trouver la boucle qu'il me faut mettre en place pour obtenir un numéro qui va s'incrémenter pendant un mois et se remettre à zéro dès qu'un nouveau mois commence.

j'envoie mon code pour que vous puissiez m'aider.

Public Function Number_Facturation() As String

Dim Numfac As Integer
Dim Num As Integer
Dim Mois, An As Integer
Dim LastNumFact As Object
Dim mabase As Object

Dim Marequete As String
Dim result As Variant

Mois = Month(Now())
An = Year(Now())

Set mabase = CurrentDb()

Marequete = "SELECT Last(T_Facturation.Num_facture) AS DernierDeNum_facture FROM T_Facturation;"

Set result = mabase.openrecordset(Marequete)
If result.RecordCount <> 0 Then
result.MoveFirst
Set LastNumFact = result!DernierDeNum_facture
End If

Num = 0

If IsNull(Forms!F_Facturation!Num_facture.Value) Then
Number_Facturation = 0
ElseIf (D_Day <= LastDayOfMonth) Then 'D_Day c la date du jour
Numfac = Forms!F_Facturation!Num_facture.Value
If (Numfac > LastNumFact) Then
Num = Num + 1
End If
Number_Facturation = Mois & "/" & An & "/" & Num

End If


End Function
-------------------------------------------------
le pouvoir appartient à ceux qui détiennent l'information, culture et connaissance pour élargir ton champ vision ....
--------------------------------------------------

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 août 2004 à 17:24
Salut lorenzo972
Apparemment, ta structure de DB n'est pas correcte pour faire ta recherche.
Etant donné que la structure de ton No d'affaire est "Mois/Année/Numéro", si tu fais une recherche, elle sera classée avec le mois, ce qui va poser problème l'année prochaine ! (car 01/2005/100 sera inférieur à 04/2004/1)
Je te conseille de restructurer tes champs pour stocker séparemment le mois, l'année et le numéro.
Pour rechercher le dernier numéro utilisé :Select Max(NoAffaire) from MaTable Where Mois Month(Now) And Année Year(Now)
- Soit tu obtiens ce numéro maxi (rs.RecordCount = 1) : Facile à incrémenter
- Soit tu n'en obtiens pas s'il n'y a pas encore eu d'enregistrer (rs.RecordCount = 0), auquel cas, tu recommences à 1

Vala
Jack
0
cs_lorenzo972 Messages postés 28 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 24 août 2004
24 août 2004 à 10:50
Salut,
J'ai compris ce que tu m'as donné comme solution mais elle ne correspond pas à ce que je veux faire car le numéro qu'il ya dans ma structure "Mois/Année/Numéro" est un numéro que je veux incrémenter par rapport au nombre d'affaire que j'aurais fait dans le mois en cours et une fois que le mois change il faut le remettre à 0 et l'incrémenter de nouveau.
De l'aide s'il vous plait !!!
-------------------------------------------------
le pouvoir appartient à ceux qui détiennent l'information, culture et connaissance pour élargir ton champ vision ....
--------------------------------------------------
0
cs_jolicoeur79 Messages postés 62 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 1 avril 2018 1
4 févr. 2007 à 03:39
salut moi aussi j'ai la meme probleme que  lorenzo972 
et merci
0
Rejoignez-nous