Bonjour

Le but d'une application est de durer dans le temps, sans avoir à retoucher le code à chaque changement d'année.
Souvent on choisit une année à l'aide d'une liste déroulante, ce que l'on fait c'est que dans la propriété contenu (RowSource) on saisi les années.

Ce que je vous propose, c'est que cela soit fait automatiquement.

Dans les deux cas que je vais vous proposer, il faut que la propriété Origine Source de la liste déroulante soit à Listes Valeurs.

Version Access 2002, 2003
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub cboAnnee_GotFocus()
    Dim i As Integer
    Me.cboAnnee.RowSource = ""
    For i = 1 To 5
        Me.cboAnnee.AddItem Year(DateAdd("yyyy", i - 2, Date))
    Next i        
End Sub
Version Access 2000

Je vous propose cette version, car la méthode Additem n'est apparue qu'à partir de 2002.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Private Sub cboAnnee2_GotFocus()
    Dim i As Integer
    Dim strSource As String
    'Me.cboAnnee2.RowSource = ""
    For i = 1 To 5
        strSource = strSource & ";" & Year(DateAdd("yyyy", i - 2, Date))
    Next i
    Me.cboAnnee2.RowSource = Right(strSource, Len(strSource) - 1)
End Sub
Ces exemples vont vous donner 5 années, de 2006 à 2010, l'année prochaine en 2008, vous aurez donc de 2007 à 2011.

Je n'ai pas testé en versions 97 et 2007, je pense que la version 2000 doit fonctionner en 97.
De plus la version 2000, fonctionne sous 2002 et 2003.


Starec