Dates de début et de fin d’année

Voici une question d’actualité, avec la nouvelle année : comment afficher dans une zone de texte d’un formulaire, le 1er jour de l’année en cours, et le dernier jour dans une autre zone ?

Sur un formulaire

  1. Créez une zone de texte  sur un formulaire.
  2. Cliquez sur cette zone de texte avec le bouton droit de la souris, puis sélectionnez Propriétés.
  3. Dans la propriété Nom, tapez par exemple : txtDebutAnnee
  4. Toujours dans les propriétés, définissez la source en tapant :
    =SérieDate(Année(Date()); 1; 1)
    ou en anglais :
    =DateSerial(Year(Date()); 1; 1)
    …ce qui équivaut à créer une nouvelle date à partir de l’année actuelle, du mois 1 (Janvier), et du jour 1.
  5. Créez une seconde zone de texte. Nommez-la txtFinAnnee.
  6. Définissez sa source en tapant cette fois :
    =AjDate("yyyy"; 1; [txtDebutAnnee]) - 1
    ou en anglais :
    =DateAdd("yyyy"; 1; [txtDebutAnnee]) - 1
    …ce qui équivaut à ajouter 1 année à la zone précédente (on tombe le 1er de l’année suivante), puis à retrancher 1 de cette valeur (on tombe donc le 31/12 de l’année souhaitée).

Dans une requête

Ces formules peuvent être utilisées ailleurs dans Access : dans des requêtes, des états, du VBA. Dans une requête, il n’y a pas de zone de texte. Il faut en remplacement créer 2 champs calculés de cette forme :

  • Début Année: SérieDate(Année(Date()); 1; 1)
  • Fin Année: AjDate("yyyy"; 1 ;[Début Année]) - 1

En VBA

En VBA, seuls les noms anglais des fonctions doivent être utilisés, et les points-virgules doivent être remplacés par des virgules. Ce qui donne par exemple :

A taper dans un bloc Sub/End Sub, bien sûr.

Vous aimerez aussi...

2 réponses

  1. fazliu dit :

    je suis absolument d’accord
    merci beaucoup à Mr Hervé Inissan

  2. folafolola dit :

    certain parlent trop pour ne rien dire! au moin ici je trouve ce que cherche de facon claire et precise bravo…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *