Bonjour,

Je cherche à créer une fonction qui en passant en paramètre une date me remonte le mois comptable.

Qu'est ce que le mois comptable ? Il correspond à cette table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
mois    debutmois         finmois
1	01/01/2007	26/01/2007
2	27/01/2007	23/02/2007
3	24/02/2007	30/03/2007
4	31/03/2007	27/04/2007
etc.


Donc pour récupérer le mois comptable, il faut que je regarde la date dede réalisation pour dire dans quel mois comptable la date se trouve en la comparant aux dates de début et de fin de mois comptable.

J'ai donc songé à déclarer une fonction moiscomptable (date)...

... mais elle ne marche pas.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Function MoisComptable(DateParam As Date) As Integer
Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
Dim sSQL As String
Set db = DBEngine.OpenDatabase("K:\MLR3.MDB")
sSQL = "SELECT calendrier_mois FROM calendrier WHERE calendrier_datedebmois<=" & DateParam & "and calendrier_datefinmois>=" & DateParam
Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
rst.MoveNext
MoisComptable = rst("calendrier_mois")
rst.Close
End Function
L'erreur que j'obtiens est :
Erreur d'exécution '3021'
Aucun Enregistrement en cours.
Quand je remplace le MoveNext par un MoveFirst j'obtiens:
Erreur d'exécution '3219'
Opération non valide.
Je vois pas ou est mon erreur :s

Merci d'avance de votre aide.