formateur informatique

Opérations sur les dates par requête Access

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Opérations sur les dates par requête Access
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


    Inscription Newsletter
Sujets que vous pourriez aussi aimer :


Actualiser des dates avec Access

Cette nouvelle astuce Access montre avec quelle simplicité il est possible d'actualiser des dates dans toute la base de données. Il peut s'agir de dates d'événements ou de dates butoirs pour des travaux à réaliser ou encore de dates d'échéances de paiements par exemple. Pour cela, Access met à disposition une fonction spécifique.



Source et procédure
Même si les manipulations peuvent être réalisées sur des données personnelles, nous proposons néanmoins de travailler sur une petite table existante.
  • Télécharger le fichier ajouter-dates.rar en cliquant sur ce lien,
  • Le décompresser dans le dossier de votre choix,
  • Double cliquer sur le fichier résultant pour l'ouvrir dans Access,
  • Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
  • Dans le volet de navigation sur la gauche de l'écran, double cliquer sur la table evt,
Nous l'affichons ainsi en mode Feuille de données.

Table Access des dates des événements à incrémenter par requête

Comme vous pouvez le voir, cette table est très sobre. Mais elle suffira largement pour les besoins de la démonstration. Elle recense simplement quelques dates d'événements. Comme nous le disions, il pourrait tout aussi bien s'agir de dates d'échéances ou d'actions à enclencher.

Nous souhaitons pouvoir agir globalement sur ces dates pour les incrémenter automatiquement d'une année par exemple. Les actions seraient ainsi à jour pour le nouveau calendrier. Pour de telles actualisations, nous devons exécuter une requête mise à jour.
  • En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
  • Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
  • Dans la boîte de dialogue qui suit, cliquer sur le bouton Ajouter pour insérer la table evt,
  • Puis, cliquer sur le bouton Fermer de cette boîte de dialogue,
Nous basculons ainsi dans la vue en conception de la requête. La table est présente sous une forme schématisée avec l'énumération de ses champs.
  • Sélectionner tous les champs de la table dans sa vue schématisée,
  • Puis, les glisser dans la grille de requête,
A ce stade, nous avons construit une requête sélection ni plus ni moins. Et en l'absence de contrainte, elle ne fait que restituer les enregistrements de la table evt. Nous souhaitons influer sur les dates du champ ev_date. Pour agir de la sorte, nous devons modifier la nature de la requête pour la transformer en requête mise à jour.
  • Pour cela, cliquer sur le bouton Mise à jour dans le ruban contextuel Créer,
Créer une requête Mise à jour avec Access



Instantanément, vous voyez apparaître la ligne Mise à jour dans la grille de requête. C'est elle qui va nous permettre d'entreprendre des actions d'actualisation sur des champs, sur un seul ici en l'occurrence. Il s'agit du champ ev_date que nous souhaitons incrémenter d'une année.

Access offre la fonction ajDate. Elle permet d'ajouter ou de retrancher des unités de temps à des dates. Elle requiert trois arguments : AjDate (intervalle; nombre; date). Le premier concerne l'intervalle de temps. Il consiste à définir si nous raisonnons en années, en mois ou en jours. Le deuxième concerne les unités à ajouter ou soustraire selon l'intervalle mentionné en premier paramètre. Le dernier doit désigner le champ sur lequel agir, soit le champ ev_date dans notre cas.
  • Dans la zone Mise à jour du champ ev_date, taper l'expression suivante :
AjDate('aaaa'; 1; [ev_date])
  • Puis, la valider avec la touche Entrée du clavier,
Fonction Access AjDate pour ajouter des unités de temps à une date

Avec le paramètre 'aaaa', nous indiquons que nous agissons sur les années auxquelles nous souhaitons ajouter une unité sans exception. En effet, en l'absence de critère sur l'un des champs, toutes les dates sont concernées par cette mise à jour. En dernier paramètre, nous rappelons le champ concerné par cette action de mise à jour. Ce champ ev_date est mentionné entre crochets comme l'impose la syntaxe Access.
  • Enregistrer la requête (CTRL + S) sous le nom : r_ajDate,
  • Puis, cliquer sur le bouton Exécuter tout à fait à gauche dans le ruban Créer,
Message alerte pour la requête Access de mise à jour des dates

Un message d'alerte apparaît. En effet, il ne s'agit plus d'une requête anodine de sélection. Cette requête va agir sur les données et une fois le traitement accepté, les modifications seront irréversibles. Tous les enregistrements, ici ils sont sept, seront impactés. Il resterait cependant tout à fait envisageable de déclencher une requête mise à jour à l'action inverse, c'est-à-dire retranchant une année à toutes les dates pour corriger l'action, si d'aventure elle n'était plus souhaitée.
  • Cliquer sur le bouton Oui pour valider le traitement,
La vue reste naturellement figée sur l'éditeur de requête. Une fois encore, il ne s'agit pas d'une requête sélection qui livre le résultat de son extraction à l'issue du traitement. Cette requête mise à jour vient d'actualiser les dates de la table evt. Pour le constater, nous devons l'ouvrir.
  • Dans le volet de navigation, double cliquer sur la table evt pour l'afficher en feuille de données,
Dates incrémentées dans la table Access grâce à une requête Mise à jour et à la fonction AjDate



Comme vous pouvez le voir, toutes les dates ont effectivement été incrémentées d'une année.

Ce procédé et cette astuce sont donc particulièrement intéressants lorsqu'il s'agit de mettre à jour des dates dans une table de plusieurs centaines, voire de plusieurs milliers d'enregistrements.
  • Revenir sur la requête en mode conception,
  • A gauche du ruban Créer, cliquer sur la flèche du bouton Affichage,
  • Dans la liste des propositions, choisir l'option Mode Sql,
Fonction SQL DateAdd pour mettre à jour les dates dans Access

Nous basculons ainsi dans l'éditeur Sql d'Access. Et comme vous le voyez, dans ce langage universel de requêtage, la fonction ajDate est traduite en DateAdd. En premier paramètre, le y de Year remplace le a de Année. Bien sûr, nous aurions pu émettre des critères sur cette requête pour réaliser la mise à jour des dates sur des conditions précises et ne pas les inclure toutes. Enfin, sachez que pour agir sur les mois, il faut passer la lettre m et une seule en premier paramètre de la fonction à la place des quatre lettres a. De la même façon, pour agir sur les jours, il faut passer une seule lettre j en premier argument de la fonction ajDate.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn