Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
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.
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,
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,
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,
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,
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,
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.