47
RomainTutoriel Access Perfectionnement Page 1 sur 47 http://romaintutoriel.free.fr Access Perfectionnement Les tables Révision sur la conception d'une base de donnée Pour construire un modèle relationnel (l'analyse) il existe plusieurs méthodes mais la plus simple dans Access consiste à Cahier des charges Identifier toutes les tâches de la BD Définir les familles de données Exemple, si j'ai prévu de saisir des employés, (Nom, Prénom, date Naissance…) la famille est Employé. Ne pas confondre les familles de données et les données. Par exemple, quand j'identifie le besoin d'information "Type de contrat", je ne dois pas faire l'erreur de prévoir CDI, CDD… On s'aide du cahier des charges, ainsi que des différentes requêtes que l'on veut pouvoir effectuer. On analyse une requête et on regarde si toutes les conditions sont réunies pour pouvoir faire cette requête. Par famille de données, on identifie les champs, par exemple, pour produits Nom, code, Prix Unitaire, conditionnement… A ce niveau, on rentre dans le détail. Dans la plupart des cas, on évite les champs calculés. Exemple, un champ âge est une erreur. Conception des tables Chaque famille de données devient une table Access. 1. Regrouper chaque famille dans une table. (sur le papier) Produits Code Nom Prix Unitaire Employés Matricule Nom Prénom Date Naissance 2. Chaque table doit avoir une clé primaire c'est l'identifiant de l'enregistrement. C'est un champ qui ne doit jamais avoir 2 fois la même valeur. C'est un champ sans doublon.

Access Perfectionnement des 12 et 13 juin 2007romaintutoriel.free.fr/tuto/Access/AccessPerfectionnement.pdf · chercher des données stockées dans Excel et de les analyser (requêtes)

  • Upload
    builien

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

RomainTutoriel Access Perfectionnement

Page 1 sur 47 http://romaintutoriel.free.fr

Access Perfectionnement 

Les tables

Révision sur la conception d'une base de donnée Pour construire un modèle relationnel (l'analyse) il existe plusieurs méthodes mais la plus simple dans Access consiste à

• Cahier des charges Identifier toutes les tâches de la BD

• Définir les familles de données Exemple, si j'ai prévu de saisir des employés, (Nom, Prénom, date Naissance…) la famille est Employé. Ne pas confondre les familles de données et les données. Par exemple, quand j'identifie le besoin d'information "Type de contrat", je ne dois pas faire l'erreur de prévoir CDI, CDD…

• On s'aide du cahier des charges, ainsi que des différentes requêtes que l'on veut pouvoir effectuer. On analyse une requête et on regarde si toutes les conditions sont réunies pour pouvoir faire cette requête.

• Par famille de données, on identifie les champs, par exemple, pour produits Nom, code, Prix Unitaire, conditionnement… A ce niveau, on rentre dans le détail. Dans la plupart des cas, on évite les champs calculés. Exemple, un champ âge est une erreur.

• Conception des tables Chaque famille de données devient une table Access.

1. Regrouper chaque famille dans une table. (sur le papier)

Produits

Code Nom Prix Unitaire …

Employés

Matricule Nom Prénom Date Naissance …

2. Chaque table doit avoir une clé primaire c'est l'identifiant de l'enregistrement. C'est un champ qui ne doit jamais avoir 2 fois la même valeur. C'est un champ sans doublon.

RomainTutoriel Access Perfectionnement

Page 2 sur 47 http://romaintutoriel.free.fr

Ici, chaque champ pourrait contenir plusieurs fois la même valeur sauf le N° Fournisseur car c'est la clé.

N°Fournisseur NomFournisseur Contact Adresse CodePostal Ville Téléphone1 Do it yourself - Marché Gérard Hatier 19 Sente du Chou 69001 Lyon 13 14 15 162 Menuiserie Strobi Charles Millet 34 rue des Marais 69002 Lyon 69 68 65 643 Simon et Associés Henri Pasquier Place de la Gare 31000 Toulouse 31 76 67 174 Marché d'Aligre Gérard Lemoine 4 rue du Dépôt 75015 Paris 34 41 87 875 Elec Trique Géraldine Vigneron 4 rue de la Citadelle 69003 Lyon 69 41 34 346 Le Petit Poucet Louise Merlin 2 rue La Fontaine 75015 Paris 42 21 44 257 Grand Déballage Gérard Dufour 4 chemin du Loup 75012 Paris 43 08 46 128 Irvin Baro & Cie Ernest Tisserand 4 pl. de la Corne 75001 Paris 39 97 81 239 Maximilien Père & Fils Véronique Stanley 2 rue Thiers 75008 Paris 39 78 87 82

10 Voltage S.A.Matériel électrique Sabine Gaston 4 rue du Dépôt 75009 Paris 39 71 14 2511 Schmidt S.A. Marie Dubois 5 rue Principale 75010 Paris 46 42 37 9312 Outillage de la Garonne Carole Hatier 5 route D'Auvergne 31000 Toulouse 31 02 73 42

3. Définir (au brouillon) les relations directes entre les tables

Je me pose la question pour chaque table. Est-ce que entre la table A et la table B, il y a un lien direct ? …

Je me pose la question, Est-ce que la table Stage est en lien direct avec Motifs, Absences, Employés…

4. Pour chaque relation directe, établir le sens de la relation. Dans quel sens l'information circule-t-elle ?

1 enregistrement Table A ∞ enregistrements Table B ?

1 enregistrement Table B ∞ enregistrements Table A ?

Il faut OBLIGATOIREMENT une réponse Vraie et une réponse Faux.

A

B

C

C

?

?

?

? ?

?

RomainTutoriel Access Perfectionnement

Page 3 sur 47 http://romaintutoriel.free.fr

Est-ce qu'1 employé peut faire plusieurs stages Vrai

Est-ce qu'1 stage peut correspondre à plusieurs employés Vrai

Attention quand il y a 2 réponses vraies, il y a 1 problème. C'est une relation dite 'infinie à infinie'.

La solution consiste à casser la relation et à insérer une table intermédiaire. (Association).

Souvent, pour nous aider, on réfléchit à un verbe (action) pour connecter les 2 tables. Dans ce cas, qu'est ce qu'un employé doit faire pour suivre un stage il doit s'inscrire. D'où la table inscription.

1 Employés ∞ Inscriptions (Vrai) 1 Inscription ∞ Employés (Faux)

1 stage ∞ Inscriptions (Vrai) 1 Inscription ∞ stages (Faux)

5. Positionner dans les tables en relation, les clés étrangères (secondaires, externes). Du côté ∞ on clone la clé primaire qui est du côté 1.

6. Dessiner les relations correctement

Inscriptions

1

1∞

Employés Matricule Nom Prénom

Inscriptions N°Inscription Date … Matricule

1 ∞

Employés Matricule Nom Prénom

Inscriptions N°Inscription Date … Matricule

1

RomainTutoriel Access Perfectionnement

Page 4 sur 47 http://romaintutoriel.free.fr

Révision sur l'assistant relation Pour me permettre de choisir un employé et un stage en déroulant une zone de liste, j'utilise l'assistant zone de lise déroulante.

En effet, il est plus facile d'affecter à une inscription un employé en le choisissant dans une liste qu'en se souvenant par cœur des numéros de matricule.

En mode création de table, pour le champ Clé étrangère, on déroule le type de données

1. Les données devant apparaître dans la liste se situent dans une table

2. Choisir la table

3. Choisir les champs que je veux afficher dans la liste. Attention, la clé se mettra de toute manière, il est donc inutile de la prendre. On choisit donc les champs explicites. Dans l'ordre de pertinence.

RomainTutoriel Access Perfectionnement

Page 5 sur 47 http://romaintutoriel.free.fr

4. Choisir dans quel ordre la liste sera triée

5. Aperçu de l'aspect de la future liste déroulante

6. Valider la création de la liste

RomainTutoriel Access Perfectionnement

Page 6 sur 47 http://romaintutoriel.free.fr

Dire oui pour l'enregistrement, autrement la relation ne se fait pas toute seule.

Dans la fenêtre des relations, il faut rafraîchir l'écran pour pouvoir afficher les dernières relations créées.

Appliquer l'intégrité référentielle en double cliquant sur la relation.

L'intégrité référentielle permet d'assurer le bon fonctionnement de la BD.

Si je ne l'active pas, je pourrai saisir des erreurs comme par exemple, une inscription pour un matricule inexistant.

Ce genre d'erreur est interdit. Cela peut entraîner de mauvais résultats dans les requêtes.

L'intégrité référentielle permet d'activer 2 options

• Mettre à jour en cascade les champs correspondants Je n'ai pas le droit de modifier la valeur d'une clé (côté 1), soit j'autorise la mise à jour et dans ce cas lorsque je modifie un matricule, toutes les absences faisant référence à ce matricule modifié se mettent à jour. Soit je l'interdis.

• Effacer en cascade les enregistrements correspondants Si j'efface un employé (côté 1), je me

retrouve avec des absences (côtés ∞) faisant référence à un matricule inexistant (il vient d'être effacé). C'est impossible car l'intégrité référentielle m'interdit d'avoir une

RomainTutoriel Access Perfectionnement

Page 7 sur 47 http://romaintutoriel.free.fr

absence pour un matricule inexistant. Donc, soit j'active cette option et la suppression d'un matricule entraîne la suppression de toutes les absences correspondantes. Soit je ne l'active pas et j'interdis donc la suppression d'un matricule qui a des absences.

Les propriétés des zones de liste

Dans les propriétés d'une zone de liste, on affiche l'onglet "Liste de choix".

Le contenu décide de ce qui s'affiche quand on déroule la liste. Cela correspond à une instruction SQL.

La colonne liée permet d'indiquer quel champ de cette liste va se stocker dans le champ.

Dans les largeurs de colonne, la colonne clé fait 0cm, elle est masquée. C'est l'astuce qui me permet de choisir une valeur de manière explicite.

Limiter à liste Oui, indique que l'on ne peut que choisir une valeur parmi celles proposées ici. TOUJOURS LAISSER OUI.

Les propriétés de la table

La propriété Valide Si

En mode création de table, on clique sur le bouton propriétés

La propriété 'valide si' permet de positionner des règles concernant la validité de la saisie d'un enregistrement.

Access vérifie ces règles à la sortie de l'enregistrement.

Double clic pour mettre la valeur dans la zone de l'expression

RomainTutoriel Access Perfectionnement

Page 8 sur 47 http://romaintutoriel.free.fr

Attention, si certains enregistrements existants ne correspondent pas à ces règles, Access me le signale mais ne me les affiche pas. L'idéal est de positionner ces règles avant de saisir les enregistrements.

Les sous-feuilles de données

Dans une table côté 1 d'une relation, un petit symbole + apparaît permettant d'afficher et de saisir des informations dans une sous-feuille de données. Si plusieurs relations partent de la table, Access demande quelle table afficher. Les propriétés inscrivent ce choix dans la fenêtre des propriétés.

Les index

Les index sont des petits marqueurs invisibles situés dans les champs d'une table. Ils sont utilisés pour rendre unique la valeur d'un champ (clé primaire = index Oui sans doublons) et ils sont également utilisés pour rendre plus rapide les requêtes devant utiliser certains champs (index = Oui avec doublons).

En mode création, chaque champ a 1 propriété Indexé, mais le récapitulatif de tous les index de la table sont situé dans la fenêtre des index.

• L'index sans doublon (PrimaryKey) permet d'éviter la saisie de doublons.

RomainTutoriel Access Perfectionnement

Page 9 sur 47 http://romaintutoriel.free.fr

L'index avec doublons permet à des champs très importants dans le fonctionnement de la BD d'être plus efficaces lors des requêtes.

On utilise ce type d'index pour accélérer le résultat des requêtes.

Mais ce n'est pas la peine de mettre des index pour des tables avec peu d'enregistrements (<3000). Au contraire, on évite absolument de mettre des index dans les petites bases de données.

Dans les options, on enlève la mise en place automatique des index par Access pour éviter d'alourdir le fonctionnement de nos BD. Menu Outils – Options – Onglet Tables / Requêtes

L'index peut réaliser une sécurité en testant la combinaison de plusieurs. Par exemple, je n'ai pas le droit pour un même stage d'affecter plusieurs fois la même personne. Ça n'a pas de sens.

A supprimer

RomainTutoriel Access Perfectionnement

Page 10 sur 47 http://romaintutoriel.free.fr

La documentation

L'outil de documentation est utile lorsque j'ai besoin de récupérer des informations concernant certains objets de ma BD.

Menu Outils – Analyse – Documentation

L'objectif est de concevoir un état prêt à l'impression qui recense toutes les infos.

RomainTutoriel Access Perfectionnement

Page 11 sur 47 http://romaintutoriel.free.fr

Les tables attachées

Par défaut, une BD Access est 1 fichier et je ne travaille que dans ce fichier. Je peux avoir besoin d'aller chercher une table qui se situe dans une autre BD. Je peux avoir besoin d'aller chercher des données stockées dans Excel et de les analyser (requêtes) ou de les imprimer (états) dans Access.

Exemple d'attache Excel

Ce fichier Excel, si je désire l'attache dans Access.

1. Fichier – Données Externes – Lier les tables

2. Choisir le type de fichiers Excel et sélectionner le bon fichier

3. Bouton Attacher

4. L'assistant d'attache de feuille de calcul se déclenche

RomainTutoriel Access Perfectionnement

Page 12 sur 47 http://romaintutoriel.free.fr

i. Choisir la feuille de calcul

ii. Vérifier que la 1ère contient les champs

iii. Nommer l'attache

Ensuite, l'attache est mise en place, elle peut servir de source pour la création d'une requête, d'un formulaire, d'un état.

RomainTutoriel Access Perfectionnement

Page 13 sur 47 http://romaintutoriel.free.fr

Le menu Outils – Utilitaire de BD – Gestionnaire de Tables liées permet de gérer toutes les attaches. Cette fenêtre permet de rattacher les tables en cas de déplacement des fichiers.

RomainTutoriel Access Perfectionnement

Page 14 sur 47 http://romaintutoriel.free.fr

Les formulaires Le rôle d'un formulaire c'est la saisie des données. La saisie dans un formulaire est plus agréable que dans une table

Avantages du formulaire

• Imbriquer des formulaires dans d'autres formulaires (sous-formulaires)

• Faire des listes de recherches

• Créer des onglets (de rangement de contrôles)

Rappels

A partir d'une sélection multiple de contrôles, je peux grâce au menu Format

• Aligner • Changer la taille • Changer les espacements (horizontaux / verticaux)

Pour faire des décalages, on peut utiliser la propriété gauche

RomainTutoriel Access Perfectionnement

Page 15 sur 47 http://romaintutoriel.free.fr

Quelques propriétés du formulaire

RomainTutoriel Access Perfectionnement

Page 16 sur 47 http://romaintutoriel.free.fr

Zone de liste de recherche d'enregistrements

Vérifier que l'assistant est enclenché.

Activer l'outil zone de liste déroulante

Faire 1 clic dans le formulaire

L'assistant se déclenche

1. 3ème option

2. Choisir les champs qui me permettent de rechercher l'enregistrement

3. Aperçu de la liste

RomainTutoriel Access Perfectionnement

Page 17 sur 47 http://romaintutoriel.free.fr

4. Etiquette de la liste déroulante

Avantage de la liste Je peux dérouler et taper les premiers caractères, la liste se synchronise au fur et à mesure de ma saisie

RomainTutoriel Access Perfectionnement

Page 18 sur 47 http://romaintutoriel.free.fr

Inconvénient

L'assistant n'a pas effectué le tri comme je le souhaite.

Dans les propriétés de la liste déroulante, dans la propriété "contenu", on modifie l'instruction SQL.

Astuce de position de la liste Il est possible de supprimer l'étiquette de la zone de liste et de réduire la largeur de la zone de liste à la largeur de la flèche. Attention, il faut dérouler avant de taper une recherche sinon, on modifie l'enregistrement en cours.

Le contrôle onglet

Positionner le contrôle onglet.

RomainTutoriel Access Perfectionnement

Page 19 sur 47 http://romaintutoriel.free.fr

Placer un élément dans le contrôle onglet 1. Choisir la page 2. Vérifier qu'avant de poser un élément, la page s'assombrit.

Placer un élément dans une page alors qu'il est déjà dans la section détail. Les éléments placés dans la section détail doivent être coupés-collés pour s'afficher dans un onglet.

1. Sélectionner les éléments 2. Couper 3. Sélectionner la page en cliquant dessus 4. Coller

Personnaliser les onglets Dans les propriétés de la page, on peut personnaliser la légende, l'image…

RomainTutoriel Access Perfectionnement

Page 20 sur 47 http://romaintutoriel.free.fr

Les propriétés du contrôle onglet

Lorsque j'insère un contrôle onglet de 2 pages, il y a en réalité 3 contrôles, la page1, la page2 et le contrôle onglet.

Le contrôle onglet dispose de propriétés supplémentaires permettant notamment

• Rendre transparent (style) • Mettre la même largeur pour chaque onglet (largeur fixe onglet)…

Les sous-formulaires

Théorie

Objectif : Imbriquer un formulaire B dans un autre A.

A est le formulaire principal, on le nomme le père.

B est le sous-formulaire, c'est le fils.

A est basé sur une table "Table A"

B est basé" sur une table "Table B"

Pour que le formulaire A recueille le sous-formulaire B, il faut impérativement que la "Table A" soit en relation directe avec la "Table B".

Pratique

Construire le sous-formulaire Pour construire le sous-formulaire, on peut se servir de l'assistant.

1. Bouton Nouveau Formulaire

2. On choisit l'assistant et on se base sur la Table B.

Table A Table B ∞1

RomainTutoriel Access Perfectionnement

Page 21 sur 47 http://romaintutoriel.free.fr

3. Choisir les champs

D'abord, choisir les champs qui me paraissent importants.

Si la clé primaire est un NuméroAuto, je ne prends pas ce champ.

On omet également la clé étrangère (le champ fils) pour l'interface. Ici, l'utilisateur verra déjà le matricule situé dans le formulaire principal.

4. Choisir la disposition tabulaire. Cela permet d'afficher un aspect 'listing'. (voire feuille de données).

5. Choisir le style

6. Nommer le formulaire (astuce, mettre SF devant le nom du sous-formulaire)

RomainTutoriel Access Perfectionnement

Page 22 sur 47 http://romaintutoriel.free.fr

Intégrer le sous-formulaire dans le formulaire principal

1. Ouvrir le Formulaire principal en mode création

2. Menu Fenêtre – Mosaïque verticale

3. Faire glisser l'objet SF dans le formulaire principal

La saisie d'une absence dans le formulaire des employés est à présent possible.

On peut vérifier que le lien entre le formulaire principal et le sous-formulaire est fait correctement grâce aux propriétés de l'objet Sous-formulaire

RomainTutoriel Access Perfectionnement

Page 23 sur 47 http://romaintutoriel.free.fr

Champ père correspond à la clé primaire et le champ fils correspond à la clé étrangère.

RomainTutoriel Access Perfectionnement

Page 24 sur 47 http://romaintutoriel.free.fr

Les requêtes Pour s'exercer sur les requêtes, on peut utiliser la BD fournie par Microsoft "Les comptoirs".

Menu ? – Exemples de Bases de données – Exemple de Base de données Les comptoirs

Pour faire une requête, il faut absolument comprendre le modèle relationnel de sa base de données.

Création d'une requête

Créer une requête en mode Création

Choisir la ou les tables à partir desquelles on souhaite afficher des données.

RomainTutoriel Access Perfectionnement

Page 25 sur 47 http://romaintutoriel.free.fr

On double-clique pour placer les tables en haut de l'interface de la requête.

Pour placer les champs dans la partie inférieure, on double-clique sur les champs dans les tables.

On peut également faire glisser un champ, ce qui permet de les insérer entre 2 colonnes.

Pour déplacer 2 colonnes, il faut

1. Sélectionner la colonne (petite flèche noire)

2. Au même emplacement, commencer le cliquer-glisser.

RomainTutoriel Access Perfectionnement

Page 26 sur 47 http://romaintutoriel.free.fr

Pour afficher le résultat de la requête, on passe par le bouton

Les tris Pour trier la requête sur un champ, je me place à l'intersection de la ligne tri et du champ à trier.

Dans Access, je peux placer autant de clés de tri que je le souhaite. On procède de la même façon.

Ce qui détermine l'ordre des clés de tri, c'est la position des champs de la gauche vers la droite dans le mode création. Je peux donc être amené à déplacer mes champs.

D'abord par pays, puis par ville.

Lorsque je déplace les champs, je change l'ordre des colonnes pour le mode affichage. Comme cet ordre ne correspond pas à ce que je souhaite, je peux rechanger l'ordre des colonnes en mode affichage.

Access, fait la différence entre l'ordre des colonnes en mode affichage et l'ordre des colonnes en mode création.

RomainTutoriel Access Perfectionnement

Page 27 sur 47 http://romaintutoriel.free.fr

Les critères

Dans une requête, j'ai besoin d'extraire certains enregistrements qui répondent à un critère particulier.

Pour placer un critère, on le saisit à l'intersection du champ et de la ligne critères.

Critères de type 'Texte'

Saisir dans la ligne critère la valeur qu'Access doit trouver. Les critères de type texte se placent entre guillemets

Minuscules et Majuscules ne font pas de différences. En revanche Bresil ≠ Brésil

Placer plusieurs critères

Pour le même champ

On utilise la ligne OU pour cumuler les critères Texte d'un même champ. On ne peut pas avoir un client dont la valeur est Mexique Et Argentine. Elle est soit Mexique soit Argentine. On doit raisonner comme le programme.

Toutes les lignes situées sous la ligne OU sont des lignes de 'OU'.

RomainTutoriel Access Perfectionnement

Page 28 sur 47 http://romaintutoriel.free.fr

On peut aussi taper les 'Ou'

Validation

Pour des champs différents

Objectif, afficher tous les propriétaires (fonction) en France (pays)

Si j'avais mis "propriétaire" et "France" sur 2 lignes différentes, Access aurait sorti tous les clients propriétaires (peu importe leur nationalité) et tous les clients français (peu importe leur fonction).

Si, plusieurs pays doivent être placés en critères, il ne faut pas oublier de reporter les critères des autres champs. Si je ne mets pas "Propriétaire" en face de Mexique, Access va sortir tous les mexicains, peu importe leur fonction.

Ou

On cumule les 2 critères, ET.

RomainTutoriel Access Perfectionnement

Page 29 sur 47 http://romaintutoriel.free.fr

Les caractères joker

On a parfois besoin de récupérer un mot dans la valeur saisie. Par exemple, je veux récupérer tous les chefs des ventes, tous les directeurs de ventes, tous les assistants des ventes…

Je ne sais pas où est placé le mot "vente" mais je veux récupérer tous les clients pour lesquels le mot "vente" est utilisé dans le champ fonction.

Le caractère * permet de remplacer une série de caractères.

A* tout ce qui commence par A *B tout ce qui se termine par B *c* tout ce qui contient c.

Le caractère ? permet de remplacer un seul caractère.

????????69* toutes les personnes dont le N°Sécu correspond au Rhône (69)

*Vente*

Le mot clé comme identifie l'* comme un caractère joker.

Les Paramètres

Une requête paramètre permet de laisser les utilisateurs qui ne connaissent pas Access remplir des critères.

On place la question dans les critères entre crochets. Très généralement on accompagne les crochets du mot clé comme ce qui permet à l'utilisateur d'utiliser les caractères joker.

Mode Affichage

Intérêt des requêtes paramètres 1 seul objet état basé sur une requête paramètre permet d'imprimer autant de listing d'entreprise qu'il y a de pays.

Cela assure la cohérence entre les différents objets imprimés et évite de stocker autant de requêtes et autant d'état qu'il n'y a de pays.

RomainTutoriel Access Perfectionnement

Page 30 sur 47 http://romaintutoriel.free.fr

Les requêtes multi-tables

Si je construis une requête multi-table c'est que j'ai besoin de champs situés dans ces différentes tables. Sinon, on risque d'avoir des résultats incohérents.

Il est également interdit de se baser sur des tables qui ne seraient pas toutes liées.

Si les liens sont rompus, l'information de circule pas d'un bout à l'autre de la source demandée.

Critères sur les champs de type date / numérique Une date saisie dans les critères se place entre #. Les # se mettent tout seul.

> Supérieur à

>= Supérieur ou égal

< Inférieur à

<= Inférieur ou égal

<> Différent de

Entre ___ Et ___ Compris entre #Date1# et #Date 2#

RomainTutoriel Access Perfectionnement

Page 31 sur 47 http://romaintutoriel.free.fr

Les calculs

Les calculs se servent des champs déjà positionnés dans la requête.

On se place dans une nouvelle colonne, sur la ligne champ et on appelle le générateur d'expression. Avant de le lancer toujours enregistrer sa requête.

Quand on utilise les champs pour faire les calculs, on peut utiliser les champs de la requête ou les champs correspondants dans les tables.

Une fois le calcul terminé, il est libellé "Expr1", je double-clique dessus et je le renomme si je

le souhaite.

Je peux ensuite placer des critères sur les champs calculés.

RomainTutoriel Access Perfectionnement

Page 32 sur 47 http://romaintutoriel.free.fr

Les requêtes opération

Les requêtes opérations permettent de regrouper les champs doublons tout en réalisant une opération sur un autre champ.

Exemple : Compter le nombre de société par pays. Compter le nombre de société (Fonction Compte) par pays (doublons – Regroupement)

Faire le CA par employés Faire le CA (Fonction Somme) par employés (doublons – Regroupement)

1. Faire la requête en plaçant les champs utiles

2. Convertir la requête sélection en requête opération. Une nouvelle ligne apparaît dans la structure de la requête.

3. Dérouler la liste des fonctions et choisir la bonne opération pour le champ qui subit le calcul.

Il faut parfois enlever les champs qui peuvent empêcher le regroupement de se faire comme on le souhaite.

Pour pouvoir regrouper uniquement sur le Nom, je dois enlever le regroupement sur le N°Commande.

RomainTutoriel Access Perfectionnement

Page 33 sur 47 http://romaintutoriel.free.fr

Les critères de date dans les requêtes opération

Par défaut, quand j'ajoute un champ, il est regroupé. Dans le cas d'une date, ça peut poser problème étant donné le nombre de dates différentes.

Pour que ce champ ne serve que de critère, on place l'opérateur Où.

J'additionne les CA par catégorie où la date est comprise entre le 1/1/97 et le 31/12/97.

RomainTutoriel Access Perfectionnement

Page 34 sur 47 http://romaintutoriel.free.fr

Les requêtes Actions Les requêtes actions sont utilisées pour gérer la base de données.

Requête Création de table A partir d'une requête classique, je peux archiver la requête que j'obtiens en stockant les résultats dans une nouvelle table.

1. Faire la requête contenant les résultats à archiver

2. On transforme la requête en requête création de table en passant par le menu Requête.

3. Nommer la future table

Pour l'instant, aucune table n'est conçue, il faut exécuter la requête pour que la table soit créée.

4. Cliquer sur le bouton Exécuter.

Access délivre une série d'avertissements

Requête Ajout d'enregistrements

Cette requête permet de récupérer certains enregistrements et de les ajouter à une table existante.

1. Faire la requête permettant d'identifier tous les enregistrements à ajouter à une table existante.

2. Transformer la requête en requête Ajout d'enregistrements

RomainTutoriel Access Perfectionnement

Page 35 sur 47 http://romaintutoriel.free.fr

Spécifier le nom de la table dans laquelle on souhaite ajouter de nouveaux enregistrements.

3. Faire la correspondance entre les champs de la requête et les champs de la table avec la ligne "Ajouter à"

4. Cliquer sur le bouton Exécuter.

Access délivre une série d'avertissements

Requête Suppression d'enregistrements

Objectif : supprimer rapidement des enregistrements en masse.

C'est certainement le type de requête le + dangereux, il convient donc de travailler sur une copie avant de faire la suppression définitive.

Avant de créer la requête suppression, vérifier que les options d'intégrité référentielle permettront de supprimer les enregistrements.

RomainTutoriel Access Perfectionnement

Page 36 sur 47 http://romaintutoriel.free.fr

1. Faire une nouvelle requête en se basant sur la table qui contient les enregistrements à supprimer.

2. Mettre les champs ayant des critères et inscrire les critères.

3. On transforme la requête en requête Suppression en passant par le menu Requêtes.

La ligne supprimer apparaît.

On peut relire la requête de la façon suivante. Je veux supprimer les enregistrements de la table Commandes là où le champ Date Commande est compris entre le 1/1/96 et le 31/12/96.

4. On exécute la requête. Cette suppression d'enregistrements est irréversible.

Requête Mise à jour

Elles permettent de faire des mises à jour en masse d'enregistrements.

Par exemple, pratiquer une augmentation des Prix Unitaires sur nos 2000 références de produits.

1. Faire une nouvelle requête

2. Placer les champs qui doivent être mis à jour et les champs qui servent de critères

RomainTutoriel Access Perfectionnement

Page 37 sur 47 http://romaintutoriel.free.fr

3. Transformer la requête en requête mise à jour

Nouvelle ligne Mise à jour. C'est dans cette ligne qu'on indique la nouvelle valeur du champ à mettre jour. Il peut s'agir d'une valeur tapée directement ou d'un calcul reprenant la valeur existante.

Dans le cas d'un calcul, on peut se servir du générateur d'expressions.

4. Exécuter la requête

Les requêtes avec jointure externe

Une jointure est une relation. C'est un type de requête qui permet de modifier la façon dont l'information circule entre les tables. DANS LA REQUETE !

Supposons que je veuille afficher tous les clients ainsi que les commandes de ces clients. Une requête classique n'affiche que les clients et les commandes faites par ces clients. Elle n'affiche pas les clients qui n'ont pas fait de commandes.

RomainTutoriel Access Perfectionnement

Page 38 sur 47 http://romaintutoriel.free.fr

Exemple : On peut donc souhaiter afficher que les clients qui n'ont pas de commandes.

1. Faire une nouvelle requête basée sur les tables clients et commandes

2. Placer les champs sociétés et N°Commande

Par défaut, le résultat affiche les clients qui ont fait des commandes.

3. Changer le type de jointure, en double-cliquant sur la relation (ça ne change que pour la requête).

Changer le type de jointure pour afficher tous les clients

RomainTutoriel Access Perfectionnement

Page 39 sur 47 http://romaintutoriel.free.fr

Null est le critère qui permet d'afficher toutes les valeurs vierges.

RomainTutoriel Access Perfectionnement

Page 40 sur 47 http://romaintutoriel.free.fr

Les états Objectif d'un état : Imprimer (mise en page), résumer, regrouper, calculer, faire des sous-totaux.

Dans la plupart des situations, les états permettent de concevoir des listings d'enregistrements que l'on peut imprimer.

L'assistant état doit être utilisé pour concevoir la structure de l'état.

Ensuite, je peux venir dans la structure (mode création) pour aménager des synthèses, des calculs, des repositionnements.

Quand je fais un état, je peux me baser sur

• Une table • Une requête (on ne prend que les enregistrements que l'on souhaite imprimer)

o Requête simple o Requête paramètre o Requête calculée o …

L'assistant Etat

Se baser sur la bonne source (table ou requête)

RomainTutoriel Access Perfectionnement

Page 41 sur 47 http://romaintutoriel.free.fr

1. Choisir les champs à afficher dans le listing (colonnes du listing). Attention à ne pas prendre trop de champs sinon, on dépasse en largeur (même en paysage).

2. Niveau de regroupement

3. Access propose de faire un tri. NE JAMAIS FAIRE DE TRI DANS L'ASSISTANT car il change l'ordre des colonnes. On réalise les tris dans le mode création de l'état.

4. Dans la présentation, on prend tabulaire et paysage

RomainTutoriel Access Perfectionnement

Page 42 sur 47 http://romaintutoriel.free.fr

5. Choisir un style

6. Nommer l'état

RomainTutoriel Access Perfectionnement

Page 43 sur 47 http://romaintutoriel.free.fr

La structure de base d'un état

Par défaut, un état réalisé avec l'assistant possède 5 sections

• L'en-tête et le pied d'état ........... Au début et à la fin du listing (Titre / Résumé / Synthèse)

• L'en-tête et le pied de page ....... En haut et en bas de chaque page (Libellé de champs / numérotation / date)

• La section détail ....................... Pour chaque enregistrement (champ de l'enregistrementà)

Trier les données dans un état Menu Affichage – Trier et grouper

Ici, je trie par Pays, puis par ville puis par société.

RomainTutoriel Access Perfectionnement

Page 44 sur 47 http://romaintutoriel.free.fr

Propriété Auto-Extensible

Lorsque je dois prendre beaucoup de champs, souvent, l'information est tronquée. Pour afficher automatiquement les retours à la ligne, j'utilise la propriété Auto-extensible.

Les regroupements

La 2ème étape de l'assistant permet de regrouper les informations sur un champ. Un niveau de regroupement permet de classer les enregistrements et de trier sur le champ regroupé.

Il est possible de cumuler les niveaux de regroupement.

Quand on positionne un niveau de regroupement avec l'assistant, l'étape n°4 change et propose des types de présentation adaptés aux regroupements

Résultat

RomainTutoriel Access Perfectionnement

Page 45 sur 47 http://romaintutoriel.free.fr

Au niveau structurel, l'assistant a en réalité ajouté un tri avec un en-tête de groupe qui est une nouvelle section.

Résolution des problèmes du regroupement

L'état coupe les groupes d'une page à une autre quand je regarde la page suivante, je ne sais pas à quel groupe appartiennent les enregistrements.

Dans les propriétés de l'en-tête de groupe, on va modifier la propriété "répéter section". Cette propriété permet de répéter la section en haut de chaque page.

RomainTutoriel Access Perfectionnement

Page 46 sur 47 http://romaintutoriel.free.fr

Il se peut que l'état début un groupe mais n'ait pas la place d'afficher le 1er enregistrement.

Dans les propriétés du groupe (menu affichage – trier et regrouper) on a une propriété Section Insécable.

• Non : c'est cette propriété qui risque d'afficher un début de groupe en bas de page sans afficher d'enregistrement.

• Groupe entier : Si l'état ne peut pas afficher tous les enregistrements du groupe sur la page, le groupe passe obligatoirement à la page suivante. Cette option affiche parfois des blancs en raison du grand nombre

d'enregistrements du groupe suivant

• Avec premier détail : à partir du moment où au moins 1 enregistrement peut figurer en bas de la page, le groupe commence sur la page. C'est une solution optimisée pour les listings.

Faire des calculs de sous-totaux Faire des sous-totaux dans Access revient à

1. Organiser une structure de sous-totaux avec un niveau de regroupement 2. Afficher la section Pied de groupe. Dans la fenêtre Trier et regrouper, on positionne

'oui' dans la propriété Pied de groupe. La section s'affiche dans le mode création.

RomainTutoriel Access Perfectionnement

Page 47 sur 47 http://romaintutoriel.free.fr

Dans cette section, je place un calcul permettant de réaliser les sous-totaux.

Somme / Moyenne / Compte

=Compte([Nom du Champ])

=Somme([Nom du Champ])

=Moyenne([Nom du Champ])

1. Placer une nouvelle zone de texte dans la section pied de groupe

2. Taper la fonction dans la zone de texte.

="Total : " & Compte([société])