Microsoft Office Online
Se connecter à Mon site Office Online (Qu'est-ce que c'est ?) | Se connecter

 
 
Microsoft Office Access
Rechercher
Rechercher
 
Acheter Office
Acheter et activer Office
 
 
 
Avertissement : vous affichez cette page avec un navigateur Web non pris en charge. Ce site Web fonctionne de manière optimale avec Microsoft Internet Explorer 6.0 ou version ultérieure, Firefox 1.5 ou Netscape Navigator 8.0 ou version ultérieure. En savoir plus sur les navigateurs pris en charge.

Modifier les données dans une requête
 

Il peut arriver que, dans certains cas, vous ne puissiez pas modifier les données d'une requête en mode Feuille de données (mode Feuille de données : fenêtre qui affiche des données d'une table, d'un formulaire, d'une requête, d'une vue ou d'une procédure stockée sous forme de lignes et de colonnes. En mode Feuille de données, vous pouvez modifier des champs et ajouter, supprimer ou rechercher des données.) pour changer les données de la table sous-jacente. Cet article vous indique quand vous pouvez modifier les données d'une requête et comment vous pouvez modifier une requête de manière à changer ses données sous-jacentes.

Dans cet article


Introduction

Lorsque vous ouvrez une requête en mode Feuille de données, il peut arriver qu'il soit nécessaire de modifier des données car certaines sont erronées ou obsolètes. Si la requête a été créée de façon à permettre les modifications, vous pouvez modifier les données directement dans la feuille de données (feuille de données : données d'une table, d'un formulaire, d'une requête, d'une vue ou d'une procédure stockée affichées sous forme de lignes et de colonnes.) de la requête.

Si, lorsque vous essayez de modifier les données dans la feuille de données d'une requête rien ne se passe ou Windows émet un son et ne prend pas en compte vos modifications, cela peut indiquer que la requête ou le champ que vous voulez modifier n'est pas modifiable, par exemple : s'il s'agit d'une requête croisée ou d'un champ reposant sur une fonction d'agrégation, comme une moyenne. Il est toutefois possible de remédier à cette situation.

En plus de modifier des données en mode Feuille de données, une requête Mise à jour (requête Mise à jour : requête Action (instruction SQL) qui modifie un jeu d'enregistrements en fonction des critères (conditions de recherche) que vous spécifiez.) vous permet de mettre à jour les données d'une table. Cet article ne traite pas des requêtes Mise à jour.

Pour plus d'informations sur les requêtes Mise à jour, voir l'article Créer une requête Mise à jour.

En général, lorsque vous modifiez les données d'une requête en mode Feuille de données, Il est conseillé d'enregistrer les modifications dans les tables sur lesquelles la requête repose. Si vous ne voulez pas modifier les données dans ces tables mais quand même conserver les données modifiées, vous pouvez utiliser une requête Création de table (requête Création de table : requête (instruction SQL) qui crée une nouvelle table, puis des enregistrements (lignes) en copiant des enregistrements à partir d'une table existante.) qui vous permet de créer une table dont vous pouvez modifier les données. Vous pouvez également utiliser une telle requête pour enregistrer les résultats d'une requête dans une table puis les modifier. Cet article n'indique pas la marche à suivre pour créer et exécuter des requêtes Création de table.

Pour plus d'informations sur les requêtes de création de table, consultez l'article Créer une requête de création de table.

Haut de la page Haut de la page

Quand peut-on modifier les données d'une requête ?

Vous pouvez modifier les données d'une requête si celle-ci repose sur une table ou deux tables reliées l'une à l'autre dans une relation un-à-un (relation un-à-un : association entre deux tables dans laquelle la valeur de clé primaire de chaque enregistrement de la table primaire correspond à la valeur du ou des champs correspondants d'un seul enregistrement de la table liée.).

 Remarque   Il arrive cependant parfois que bien que vous puissiez modifier les données d'une requête, certains de ses champs ne soient pas modifiables. La section suivante décrit pareilles situations.

Haut de la page Haut de la page

Quand ne peut-on pas modifier les données d'une requête ?

Vous ne pouvez pas modifier les données d'une requête lorsque :

Haut de la page Haut de la page

Comment peut-on modifier une requête de manière à changer ses données ?

Le tableau suivant indique les cas dans lesquels vous ne pouvez pas modifier une requête et les méthodes qui permettent de rendre modifiable la feuille de données de la requête.

Vous ne pouvez pas modifier les valeurs de la feuille de données d'une requête lorsque : Pour rendre la feuille de données de la requête modifiable :
La propriété Valeurs uniques de la requête a la valeur Oui. Attribuez la valeur Non à la propriété Valeurs uniques.

Reportez-vous à la section Attribuer la valeur Non à la propriété Valeurs uniques pour savoir comment configurer cette propriété.

La requête comporte une table de base de données ODBC (base de données ODBC : base de données pour laquelle un pilote ODBC (Open Database Connectivity) permettant d'importer des données, d'établir une liaison à des données ou d'exporter des données est fourni.) attachée sans index unique (index unique : index défini par l'affectation de la valeur Oui - sans doublons à la propriété Indexed d'un champ. Un index unique n'autorise pas la saisie de doublons dans le champ indexé. La définition d'un champ comme clé primaire définit automatiquement ce champ comme étant unique.) ou une table Paradox sans clé primaire (clé primaire : un ou plusieurs champs (colonnes) dont la valeur identifie de façon unique chaque enregistrement d'une table. Une clé primaire n'accepte pas les valeurs Null et doit toujours avoir un index unique. Une clé primaire sert à relier une table à des clés étrangères se trouvant dans d'autres tables.). Ajoutez une clé primaire ou un index unique à la table attachée en suivant les instructions du fournisseur de la base de données attachée.
Vous ne disposez d'aucune autorisation Mettre à jour la base de données pour la table sous-jacente. Assignez des autorisations Mettre à jour la base de données.
La requête comporte plusieurs tables ou requêtes et les tables ou les requêtes ne sont pas liées par une ligne de jointure en mode Création. Créez les jointures appropriées.

Pour savoir comment créer des jointures, voir la section Créer des jointures.

La base de données ou le lecteur sur lequel elle se trouve est en lecture seule. Fermez la base de données et rouvrez-la sans sélectionner Ouvrir en lecture seule ; ou, si la base de données se trouve sur un lecteur en lecture seule, supprimez l'attribut de lecture seule du lecteur ou placez la base de données sur un lecteur qui n'est pas en lecture seule.
Le champ dans l'enregistrement que vous voulez mettre à jour est supprimé ou est verrouillé par un autre utilisateur. Attendez que l'enregistrement ne soit plus verrouillé. Un enregistrement verrouillé peut être mis à jour dès qu'il est déverrouillé. Attendez que l'autre utilisateur finisse l'opération qui a entraîné le verrouillage de l'enregistrement.
La requête repose sur des tables liées par une relation un-à-plusieurs (relation un-à-plusieurs : association entre deux tables dans laquelle la valeur de clé primaire de chaque enregistrement de la table primaire correspond à la valeur du ou des champs correspondants de plusieurs enregistrements de la table liée.) et le champ de jointure des tables côté « plusieurs » n'est pas un champ de sortie. Dans ce cas, les données dans le champ de jointure de la table côté « un » ne peuvent pas être modifiées. Ajoutez le champ de jointure du côté « plusieurs » de la relation aux champs de sortie de la requête.

Pour savoir comment ajouter le champ de jointure, voir la section Ajouter le champ de jointure du côté « plusieurs » aux champs de sortie de la requête.

Le champ de jointure du côté « plusieurs » (après modification des données) est sur le côté « un ». Appuyez sur MAJ+F9 pour valider vos modifications et actualiser la requête.
Il y a un champ vide dans la table du côté « un » d'une relation un-à-plusieurs et la jointure est de type jointure externe droite. Vérifiez que le champ du côté « un » comporte une valeur. Vous pouvez modifier le champ de jointure du côté « plusieurs » seulement si ce même champ du côté « un » comporte une valeur.
Vous utilisez une table de base de données ODBC attachée et tous les champs de l'index unique de la table attachée n'apparaissent pas dans le résultat de la requête. Ajoutez tous les champs de l'index unique de la table ODBC aux champs de sortie de la requête.

Pour savoir comment ajouter les champs, voir la section Ajouter des champs de l'index unique d'une table ODBC attachée.


Haut de la page Haut de la page

Attribuer la valeur Non à la propriété Valeurs uniques

  1. Ouvrez la requête en mode Création.
  2. Si la feuille de propriétés n'est pas ouverte, ouvrez-la en appuyant sur F4. Cliquez une fois dans la grille de création de la requête pour que la feuille de propriétés affiche les propriétés de la requête et non les propriétés des champs.
  3. Dans la feuille de propriétés, cliquez sur la flèche à côté de la zone de propriété Valeurs uniques, puis cliquez sur Non.

Créer des jointures

  1. Ouvrez la requête en mode Création.
  2. Pour chaque table ou requête que vous voulez joindre à une autre, faites glisser le champ de jointure de cette table ou requête sur le champ correspondant de la table ou requête que vous voulez joindre à la première.

Pour plus d'informations sur la création de jointures, voir l'article Joindre des tables et des requêtes.

Ajouter le champ de jointure du côté « plusieurs » aux champs de sortie de la requête

  1. Ouvrez la requête en mode Création.
  2. Dans le Concepteur de requêtes, recherchez la jointure qui correspond à la relation un-à-plusieurs appropriée.
  3. Double-cliquez sur le champ de jointure du côté « plusieurs » de la relation un-à-plusieurs. Le champ de jointure apparaît alors dans la grille des champs, ce qui indique qu'il est désormais un champ de sortie.

Ajouter des champs de l'index unique à partir d'une table ODBC attachée

  1. Ouvrez la requête en mode Création.
  2. Dans le Concepteur de requête, recherchez la table ODBC attachée.
  3. Un symbole représentant une clé apparaît à côté du nom des champs de l'index unique. Double-cliquez sur chaque champ qui n'est pas dans la grille des champs. Chaque champ apparaît alors dans la grille de champs, ce qui indique qu'il est désormais un champ de sortie.

Haut de la page Haut de la page

publicité