Magazine Informatique

Créer une requête d’ajout sur Access

Publié le 02 avril 2014 par Lydia Provin @Votreassistante

Suite à la demande d’un abonné, nous allons découvrir à quoi sert une requête d’ajout sur Access et comment la créer.

Une requête d’ajout sur Access est une requête qui permet, selon un ou plusieurs critères, d’ajouter les enregistrements d’une table dans une autre table existante en conservant les enregistrements dans la table d’origine.

La différence avec une requête de création de table, c’est que la requête d’ajout ajoute les enregistrements à la suite des autres dans une table existante alors que la requête de création de table crée une nouvelle table. De même, avec ce type de requête, vous pouvez choisir la correspondance entre les champs de départ et de destination et vous pourrez relancer la requête sans que cela crée une nouvelle table.

Dans cet exemple, nous allons copier les clients de la Table Clients dont le dernier achat date d’avant le 1er janvier 2013 dans la Table À relancer.

Vous retrouverez la base de données utilisée dans l’Espace Membres.

Nous allons commencer par créer une requête de sélection (la plus simple) en allant dans l’onglet Créer > Création de requête

Création de requête 2013
.

Choisissez la Table Clients et double-cliquez sur chacun des champs. Dans les critères du champ Dernier achat, indiquez : <01/01/2013. Cela indique que l’on va sélectionner les enregistrements inférieurs au 1er janvier 2013.

Vous pouvez cliquer sur Exécuter  

Exécuter 2013
afin de constater si le résultat vous convient. Puis, repassez en Mode Création en cliquant droit sur l’onglet > Mode Création
Mode création 2013
 et cliquez dans les choix de requête sur Ajout 
Ajout
.

Une boîte de dialogue apparaît, choisissez, dans le menu déroulant, À relancer et cliquez sur Ok.

Ajouter enregistrements à table Access

 Au-dessus de la ligne Critères, vous avez une nouvelle ligne qui est apparue : Ajouter à.

Cette ligne vous permet de choisir le champ de destination. C’est-à-dire que je pourrais choisir de placer les numéros de téléphone dans le champ Email de la table de destination simplement en sélectionnant le champ dans le menu déroulant. Étant donné que j’ai juste copié la Table Clients et supprimé les enregistrements, les champs correspondent et je ne vais pas y toucher. Mais vous pouvez tout à fait créer une table de destination dont les noms des champs ne correspondent pas du tout aux champs de départ.

Vous pouvez cliquer sur Exécuter

Exécuter 2013
, puis ouvrir la Table À relancer sans fermer la requête.

Vous allez ajouter X lignes

Cliquez sur Oui : les données répondant au critère indiqué dans la requête se trouvent copiées dans cette table.

 

Requête ajout Access

Pour réutiliser cette requête à un autre moment, vous pouvez l’enregistrer en cliquant droit sur l’onglet > Fermer

Fermer requête
ou Enregistrer
Enregistrer requête
.

Choisissez un nom pour votre requête. Je vais appeler la mienne MAJ (pour mise à jour).

 

Enregistrer requête Access MAJ

Cliquez sur Ok.

Si vous modifiez certaines dates postérieures au 1er janvier 2013 pour des dates antérieures, vous pouvez relancer la requête en double-cliquant dessus

Icône requête ajout Access
 pour ajouter les nouveaux enregistrements répondant à ce critère. Vous aurez un premier message :

 

Vous allez exécuter une requête Ajout qui modifiera les données de votre table

Cliquez sur Oui. Un second message apparaît :

Vous allez ajouter X lignes requête ajout Access

Cliquez sur Oui.

Microsoft Access ne peut pas ajouter tous les enregistrements de la requête Ajout

Enfin, Access vous indique une erreur tout à fait normale. Access ne peut pas ajouter les enregistrements qui étaient déjà présents dans la Table À relancer.

On pourrait, par exemple supprimer le N° Client dans la Table À relancer et ce champ dans la requête. Mais, le souci, c’est que si vous relancez plusieurs fois la requête, étant donné qu’il n’y aura plus de clé primaire, vous allez vous retrouver avec des doublons.

De ce fait, je vous conseille de laisser ce message d’erreur puisque, de toute façon, seuls les enregistrements non encore présents dans la Table À relancer seront recopiés dedans.

Si vous souhaitez tous les recopier, effacez-les d’abord de la Table À relancer en sélectionnant toutes les lignes et en appuyant sur la touche Suppr, puis lancez la requête. Cette fois-ci le message d’erreur n’apparaîtra pas.

À noter que les enregistrements déjà présents dans la table avant le lancement de la requête ne seront pas modifiés. Donc si vous avez modifié des informations concernant ces enregistrements, supprimez les enregistrements de la table et lancez la requête.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Lydia Provin 1007 partages Voir son profil
Voir son blog