Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/09/2007, 08h33   #1
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 922
Points : 30 922
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Par défaut [Fait]Remplir dynamiquement une liste déroulante avec les années

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 :
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 :
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h23.


 
 
 
 
Partenaires

Hébergement Web