[VBA/SQL]Execution d'une requete via une fonction
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:
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:
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 :
Citation:
Erreur d'exécution '3021'
Aucun Enregistrement en cours.
Quand je remplace le MoveNext par un MoveFirst j'obtiens:
Citation:
Erreur d'exécution '3219'
Opération non valide.
Je vois pas ou est mon erreur :s
Merci d'avance de votre aide.