• Aucun résultat trouvé

[PDF] Support de cours sur les Etats en Access en pdf | Cours informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Support de cours sur les Etats en Access en pdf | Cours informatique"

Copied!
132
0
0

Texte intégral

(1)

UTILISATION DE MS/ACCESS

(Introduction)

(Version 3.0, 2002)

ETUDIANTS

en informatique

Sous la responsabilité du professeur A. GUERID

EIVD, Yverdon-les-Bains, 1, Rte de Cheseaux

ECOLE D’INGENIEURS DU CANTON DE VAUD

(2)

Table des matières

INTRODUCTION A MICROSOFT ACCESS... 4

Présentation de la base exemple ... 6

Cahier des charges ... 6

Modèle conceptuel de données ... 6

Modèle relationnel... 7

CHAPITRE 1. UTILISATION (MOTEUR JET 4.0) ... 8

1.1.Présentation du moteur de base de données JET 4.0 ... 8

1.2. Création d'une nouvelle base de données... 9

1.3. La fenêtre "Base de données"... 13

1.4. Définition des données... 17

1.4.1. Définition de la table CLIENT... 22

1.4.2. Définition de la table AGENCE ... 23

1.4.3. Définition des tables DEPOT et RETRAIT ... 24

1.5. Définition des relations entre les tables ... 26

1.6. Insertion des données ... 29

1.6.1. Insertion en mode feuille de données ... 29

1.6.2. Insertion à partir d'un formulaire ... 31

1.6.3. Importation de données depuis un fichier texte ... 33

1.7. Consultation des données... 37

1.7.1. Interrogation en mode feuille de données... 37

1.7.2. Interrogation à l'aide d'une requête ... 39

1.7.3. Requêtes SQL ... 44

1.7.4. Sous-feuilles de données : ... 46

1.8. Conception et utilisation d'un formulaire ... 48

1.8.1. Formulaire instantané ... 48

1.8.2. Personnalisation d'un formulaire ... 48

1.8.3. Formulaire basé sur une requête ... 52

1.10. Conception et utilisation d'un état ... 56

1.10.1. Création d'un état simple sur une table ... 56

1.10.2. Création d'un état avec regroupement sur une requête ... 59

1.11.Page d’accès aux données... 62

1.12. Création d'une petite application ... 67

1.13. Conclusion sur le moteur JET 4.0 et sur Access2000... 70

CHAPITRE 2... 71

ACCESS2000 ET SQL SERVER 7.0 UTILISATION DU MOTEUR MSDE... 71

2.1 Présentation des technologies MSDE et SQL Server 7.0 ... 71

(3)

2.1.2 SQL Server... 72

2.2 Le projet Access... 73

2.2.1 Création d’un projet Access... 74

2.2.2 Où se situe physiquement la base de donnée ? ... 75

2.3 Les objets de MSDE/SQL Server... 77

2.4 Définition des données... 78

2.4.1 Les types de données SQL Server ... 78

2.4.2 Création des tables ... 79

2.5 Le schéma de base de données... 84

2.6. Insertion des données ... 88

2.6.1 Insertion des données en mode feuille de données ... 88

2.6.2 Insertion des données depuis un formulaire ... 88

2.6.3 Importation des données depuis un fichier texte. ... 88

2.7. Consultation des données... 93

2.7.1 Les vues... 93

2.7.2 Les procédures stockées ... 98

2.8 Etats, Pages d’accès aux données, Création d’une petite application104 2.9 Migration d’une base de données JET vers MSDE/SQL Server ...104

2.10 Migration d’une base de données MSDE/SQL Server vers JET...108

2.11 Conclusion sur MSDE...111

CHAPITRE 3. LANGAGE SQL ...112

3.1. Introduction ...112

3.2. Les nouveautés de SQL JET4.0 ...112

3.3 Comparaison entre SQL JET 4.0 et ANSI-SQL ...113

3.3.1 Différences principales ...113

3.3.2. Fonctions avancées du langage SQL du moteur Jet ...114

3.3.3 Fonctions SQL ANSI non gérées par SQL JET...115

3.4. Les instructions de base...116

3.4.1. Instruction SELECT ...116

3.4.2. Instruction INSERT ...121

3.4.3. Instruction DELETE ...123

3.4.4. Instruction UPDATE ...124

3.5. Quelques instructions particulières de SQL JET...125

3.5.1. Instruction CREATE TABLE...125

3.5.2. Instruction CREATE INDEX ...128

3.5.3. Instruction ALTER TABLE ...128

3.5.4. Instruction DROP ...129

3.6. Transact-SQL (T-SQL)...129

(4)

Introduction à Microsoft Access

Microsoft Access est un système de gestion de base de données relationnelles (SGBDR) entièrement conçu pour l'environnement Windows, offrant à ce titre puissance et convivialité.

La version Access 2000, qui est disponible depuis le mois de mai 1999, a subi de nombreuses améliorations par rapport à la version Access97. Cette notice est une mise à jour de la notice sur Access97 disponible à l’eivd. Les notions de bases communes à Access97 et à Access2000 sont présentées en utilisant uniquement le nom Access. Les nouveautés seront présentées en spécifiant qu’elles concernent uniquement Access2000

L'interface très conviviale d'Access permet à un utilisateur débutant de créer rapidement une petite base de données, mais offre également aux spécialistes toute la puissance et la souplesse pour le développement d'applications professionnelles.

De nombreux assistants permettent d'automatiser les tâches de définitions d'objets. L'utilisateur ne fait que de répondre aux questions posées pas le logiciel.

Access est intégré dans la série des produits Microsoft Office conçus pour fonctionner ensemble. A ce titre, on peut très facilement importer, exporter ou lier dynamiquement de données avec des logiciels comme Word ou Excel.

Le but du chapitre 1 est de permettre à un utilisateur débutant de se familiariser avec

l'environnement et les possibilités de MS Access en créant une petite base de données exemple. La base de données exemple est basée sur l’utilisation du moteur de base de donnée JET 4.0, qui est le moteur traditionnel fourni avec les différentes versions de Access. Les caractéristiques de JET seront détaillées dans le chapitre 1.

Le chapitre 2 présente la nouveauté la plus fondamentale de Access2000, qui est de permettre l’utilisation du moteur de base de données MSDE à la place du moteur JET. MSDE est un moteur de base de données 100% compatible avec le moteur de base de données de SQL Server 7.0. Une base de données ou une application développée en utilisant MSDE pourra être portée vers SQL Server 7.0 sans modifier une seule ligne de code de l’application. Les capacités de MSDE seront détaillées dans le chapitre 2.

La notion de projet Access permet d’utiliser Access2000 comme client frontal d’une base de

données SQL Server 7.0, et de manipuler celle-ci depuis l’interface de Access2000 au lieu d’utiliser l’interface de SQL Server 7.0.

MSDE ne fait pas partie de la procédure d’installation standard de Office 2000 ou de Access2000, mais il figure sur le CR-ROM de ces produits. Il peut également être utilisé pour la création d’une application depuis l’environnement de développement Visual Studio 6.0.

(5)

Le chapitre 3 présente Access SQL, qui est un sur-ensemble de la norme SQL, complété par quelques fonctionnalités supplémentaires. L’utilisation de MSDE nécessitera l’utilisation de Transact-SQL, qui est le langage SQL utilisé par SQL Server 7.0.

La programmation par macros et avec Access Basic demande des connaissances plus approfondies de l'environnement et sera présenté au chapitre 4 (Ce chapitre est encore basé sur Access97).

Les captures d’écran ont été effectuées avec Access2000 mais, sauf mention contraire, les manipulations sont semblables avec Access97.

(6)

Présentation de la base exemple

Cahier des charges

Tout au long de cet apprentissage, nous allons utiliser un exemple concret dont le cahier des charges est le suivant :

• Une banque se propose d'informatiser les transactions effectuées par ses agences.

• Un client est identifié par un numéro et se caractérise par son nom, son adresse (rue, numéro de rue, localité et npa).

• Une agence est caractérisée par un numéro, un nom (exemple agence de la Gare...) ainsi que par la localité où elle se trouve.

• Les transactions considérées sont les dépôts et les retraits. Un dépôt ou un retrait est caractérisé par un numéro, une date et un montant.

• La banque gère les clients (y compris bien sûr ceux qui n'ont pas effectué de transaction récemment). Les clients peuvent effectuer des transactions dans l'agence de leur choix.

Modèle conceptuel de données

Avant de nous lancer dans la réalisation de cette application avec Access, il nous faut modéliser ces données de manière à obtenir un schéma cohérent.

Remarquons ici qu'un client ou une agence peut exister indépendamment, alors que les retraits ou les dépôts ne peuvent exister que s'ils sont liés à un client et une agence.

On peut facilement voir qu'il existe ici deux entités : les clients et les agences.

Entre ces deux entités, on peut identifier deux associations qui sont les dépôts et les retraits que nous décidons de gérer séparément.

En tenant compte des différentes propriétés des entités et des associations énoncées plus haut, on peut établir le schéma conceptuel suivant :

(7)

Les cardinalités peuvent être expliquée de la manière suivante :

1) L'énoncé de notre problème précise qu'il faut gérer les clients qui n'ont pas effectué de transaction récemment. Un client peut donc exister sans aucune transaction. Par contre, il peut évidemment effectuer plusieurs transactions dans différentes agences, d'où la cardinalité (0.N).

2) Idem, un client n'a pas besoin d'avoir un dépôt pour exister.

3) On admet le cas d'une agence (débutante) qui n'a encore effectué aucune transaction. Elle pourra bien sûr effectuer des versements à plusieurs clients différents.

4) Idem.

Modèle relationnel

Notre modèle entité-association est donc terminé, il nous faut maintenant passer de ce modèle purement conceptuel à un modèle relationnel.

Pour les deux associations du modèle conceptuel, les cardinalités sont de type (0,N) des deux côtés. Selon la règle n°3 (voir cours base de données), ces associations deviennent de nouvelles relations contenant une clé de chaque entité participant à l'associatio n ainsi que toutes les propriétés de l'association.

On obtient donc les quatre relations suivantes :

r-CLIENT (num_cli,nom_cli,rue_cli,num_rue,loc_cli,npa_cli) r-AGENCE (num_ag,nom_ag,loc_ag,npa_ag)

r-RETRAIT (num_ret,date_ret,mont_ret,num_ag,num_cli) r-DEPOT (num_dep,date_dep,mont_dep,num_ag,num_cli)

Graphiquement, on peut représenter ce schéma de la manière suivante :

(8)

Chapitre 1. Utilisation (Moteur JET 4.0)

1.1.Présentation du moteur de base de données JET 4.0

JET, actuellement dans sa version 4.0, est le moteur de base de données traditionnel de Access. C’est un système de gestion de données stockées dans des fichiers ; les bases de données sont stockées dans un fichier unique, et les opérations de lecture et d’écriture sont gérées par la station cliente. JET supporte l’accès simultané à la base de donnée par plusieurs utilisateurs.

Les bases de données JET 4.0 peuvent faire parties de solutions développées avec les produits suivants :

• Microsoft Office2000

• Microsoft Access2000

• Tout les produits et langages de la suite Visual Studio 6.0

JET ne peut pas gérer des bases de données de plus de 2 Go, et le nombre d’accès simultanés à une base de données JET est limité à 255 au maximum. La sauvegarde et la distribution des bases de données JET sont aisées, car une base de données utilisant JET est constituée d’un seul fichier. Par contre, comme les transactions ne sont pas journalisées, la récupération après incident se limite à la restauration de la dernière sauvegarde. JET est également le moteur de base de données qui

nécessite le moins de ressource, par rapport à MSDE ou à SQL Server. JET 4.0 offre également une bonne compatibilité amont avec les bases de données développées avec une version antérieure du moteur JET, telle que la version 3.5 fournie avec Access97.

Le choix de JET s’impose pour les systèmes bureautiques qui n’évolueront pas en taille ou en nombre d’utilisateurs. JET offre une solution à faible coût, tout en garantissant une bonne compatibilité amont avec les solutions JET existantes.

(9)

1.2. Création d'une nouvelle base de données

Une base de données Access2000 est formée des 7 catégories d'objets suivantes, qui seront présentées dans ce premier chapitre :

Les tables

Définition et stockage des données.

Les requêtes

Interrogation et création de vues sur les données.

Les formulaires

Ecrans personnalisés pour la saisie, la modification et la consultation des données .

Les états

Présentation facile des données à imprimer et calculs des totaux pour des enregistrements regroupés.

Les pages d’accès aux données

Documents Web liés à la base de données Access2000, qui permettent de consulter ou de mettre à jour les informations qu’elle contient . C’est une nouveauté de la version Access2000, qui nécessite l’utilisation de la version 5.0 du navigateur Internet Explorer au minimum.

Les macros

Automatisation des tâches répétitives.

Les modules

Procédures du langage intégré Access Basic.

Pour démarrer le programmeAccess, il existe plusieurs possibilités :

• Cliquer sur l’icône Microsoft Access de la barre de menu Office si elle est installée.

Cliquer sur l’icône Access dans le menu Démarrer => Programmes => Microsoft Access (Fig1.1a) :

(10)

• Autrement, cliquer directement sur un raccourci vers le programme Access 2000 (Fig1.1b) :

Fig1.1b: raccourci vers Access2000

La dernière possibilité est de cliquer sur l’icône Nouveau document Office depuis le menu Démarrer (Fig1.1c).

Fig1.1c: Nouveau document Office dans le menu démarrer

Et pour démarrer Access, il ne reste plus qu’à cliquer sur l’icône Nouvelle base de données (Fig1.1d)

(11)

Avant toute chose, et afin de se prémunir contre le fameux bug de l’an 2000, on peut forcer Access2000 à utiliser des formats de date sur 4 chiffres. Cette option est sélectionnable depuis le menu Outils => Options, onglet général, utiliser le format à quatre chiffres pour les années (Fig an2000).

Fig. An2000 : Pour forcer les dates sur quatre chiffres

Au niveau de l’interface de Access2000, Microsoft a introduit des menus « dynamiques ». Seules les entrées qui sont régulièrement utilisées sont affichées en permanence. Pour afficher les entrées qui sont masquées, il suffit de cliquer sur les deux chevrons en bas de chaque menu (Fig1.2a).

(12)

Toutes les entrées du menu sont alors affichées (Fig2.1b).

Fig1.2b :toutes les entrées du menu sont affichées

Au démarrage du programme, Access affiche la fenêtre de démarrage qui ne contient aucun objet. Pour créer une nouvelle base, il faut choisir le menu Fichier / Nouvelle base de données (Fig1.3).

Fig1.3 : Création d'une nouvelle base de données

Cette fenêtre permet de créer soit une nouvelle base de données, soit de faire appel à un assistant pour créer la base ou de créer un projet de base de données. La notion de projet de base de données, qui sera détaillée dans le chapitre suivant, est l’une des principales nouveautés de Access2000.

(13)

On obtient alors la fenêtre qui va nous permettre de créer notre nouvelle base pour la gestion de notre banque. Après avoir sélectionné l'emplacement de la nouvelle base, nous allo ns entrer son nom (ici GESTION) (Fig1.4). Il faut savoir que toutes les définitions d'objets ainsi que les données seront stockées dans un même fichier.

Fig1.4 : Nom et emplacement de la nouvelle base

1.3. La fenêtre "Base de données"

A l'ouverture d'une nouvelle base apparaît la fenêtre "Base de données" qui sera le centre de contrôle de toutes les opérations futures (Fig1.5). Elle présente dans sa partie gauche de fenêtre la liste de tous les objets de la base classés dans les 7 catégories présentées en introduction (Fig1.6).

.

(14)

Il suffit de cliquer sur une des catégories pour obtenir la liste des objets qu'elle contient. Ici notre base ne contient évidemment aucun élément.

Fig1.6 : sélection des catégories d’objets de la base

Les trois boutons de commande dans la partie supérieure de la fenêtre vont nous permettre de créer de nouveaux objets et d'ouvrir ou de modifier des objets existants (Fig1.6).

Fig1.6b : Création, modification ou ouverture d’un objet

La fenêtre Access présente encore une barre de menu et une barre d'outils. Ces deux éléments changent selon la fenêtre utilisée. Par exemple la barre d'outils n'est pas la même dans la fenêtre "Création de formulaire" que dans la fenêtre "Base de données".

Cette barre d'outils s'appelle donc "Barre d'outils / Base de données" (Fig1.7). La terminologie est importante dans Access car on y fait directement références lorsqu'on utilise les macros.

Fig1.7 : Menu et barre d'outils "Base de données"

Le menu comporte les options suivantes :

Fichier : opérations sur les bases de données; ouvertures, fermeture, importation, exportation et impression.

Edition : opérations Copier/Coller et définition des relations entre tables.

Affichage : affichage des différents objets, personnalisation des barres d'outils et des options générales de présentation.

Insertion : création instantané des sept objets (Tables, Requêtes, Formulaires, Etats, Page d’accès web, Macros, Modules).

Outils : définition des utilisateurs de la base et de leurs droits d'accès, gestion des mots de passe. Création d’application à démarrage automatique. Macros

(15)

Fenêtre : arrangement des différentes fenêtres.

Aide : rubriques d'aide. Utilisez-les !

Comme expliqué au début de ce chapitre, une partie des entrées de chaque menu peut être masquée dans Access2000 en fonction de leur utilisation. Il suffit de cliquer sur le double chevron au bas du menu pour afficher toutes ses entrées.

La barre d'outils est composée d'une série de boutons qui sont en fait des raccourcis des commandes les plus utilisées du menu. Pour connaître la signification de ces boutons, il suffit de placer la souris dessus et de la laisser immobile. Une bulle d'aide s'affiche alors en dessous indiquant la fonction de ce bouton.

Access est un produit très complet qui comporte un grand nombre de fenêtres, de menus et de barres d'outils différentes. Nous verrons les plus importantes, mais on a parfois tendance à se perdre dans les dédales d'options et de listes de propriétés.

En comparaison avec les autres produits Microsoft, la qualité de l'aide fournie avec Access est exceptionnelle. N'hésitez pas à taper la touche <F1> à n'importe quel moment pour obtenir l'aide sur l'opération en cours.

Si le compagnon Office a été installé, le petit personnage suivant apparaît à l’écran (Fig1.8a) :

(16)

Ce compagnon bien sympathique (en tous cas au début) permet (en principe) de poser des questions en langage naturel à l’ordinateur (Fig1.8b) :

Fig8 Poser les questions en langage naturel

Access va analyser la question posée, et va fournir en retour une série de rubriques susceptibles de contenir la réponse à la question posée. L’analyse est basée en partie sur les mots-clé de la question, et les résultats ne sont quelquefois pas très en rapport avec la question posée.

Dans le cas ou le compagnon Office, est masqué ou n’est pas installé, la fenêtre d’aide standard est utilisable (Fig1.8c) :

Fig1.8c : Fenêtre de recherche dans l’aide

Utilisez aussi la recherche par mots clés (onglet "Index" dans la fenêtre d'aide Fig1.8c), très utile pour obtenir des informations sur un sujet particulier.

(17)

1.4. Définition des données

La fenêtre "Base de données" Access2000 permet de lancer directement les trois possibilités que l’utilisateur a pour créer une table (Fig1.9).

Fig1.9 : Utilisation d'un assistant ?

Access2000 peut proposer l’aide d’un assistant pour créer la table, ou l’utilisateur peut créer lui-même la table soit en entrant directement les données (méthode a utiliser

uniquement dans des cas biens précis, car toutes les données sont enregistrées dans des champs texte), soit en définissant la table en mode création.

Les assistants sont en fait des experts qui aident l'utilisateur lors de la création d'objets.

L'assistant table propose (Fig1.10) :

• plusieurs modèles de tables répartis en 2 domaines, Affaire et Privé.

• des listes d'attributs les plus courant pour chacune des tables, que l'utilisateur peut sélectionner indépendamment.

• l’établissement automatique des liens les plus courants entre les tables, comme un modèle Commande-Produits-Fournisseurs.

(18)

• Comme le modèle relationnel de notre base est déjà établi, nous n'aurons pas besoin de cet assistant. Mais il peut être très utile pour un utilisateur débutant qui ne sait pas comment modéliser sa base.

• Choisir "Mode création" dans la boîte de dialogue.

• Access ouvre alors la fenêtre de création de table indiquée ci-dessous(Fig1.11).

Fig1.11 : Fenêtre "Création de table"

Cette fenêtre est divisée en deux parties :

La grille : partie supérieure qui comporte les colonnes suivantes :

Nom du champ : nom de l'attribut de la table. Access autorise les noms contenant des espaces et des caractères accentués, ce qui permet de les rendre très

significatifs. En contrepartie, on sera obligé de les renommer si l'on veut exporter cette table vers un SGBD qui ne supporte pas cette possibilité.

Type de données : en cliquant sur la droite de ce champ, la liste des types reconnus par Access s'affiche :

Texte Texte et nombres. Un champ Texte peut contenir jusqu'à 255 caractères.

Mémo Texte et nombres plus longs, notamment des commentaires ou des explications. Un champ Mémo peut contenir jusqu'à

64 000 caractères.

Numérique Données numériques sur lesquelles vous souhaitez effectuer des calculs mathématiques.

(19)

Date/Heure Dates et heures. Vous pouvez créer votre propre format d'affichage ou choisir un des nombreux formats disponibles.

Monétaire Valeurs monétaires. N'utilisez pas le type de données

Numérique pour les valeurs monétaires car la partie décimale du résultat des calculs risquerait d'être arrondie.

Numéro Auto Nombres séquentiels automatiquement insérés par Access en commençant par 1. Le type de données NuméroAuto fournit un champ Clé primaire tout à fait approprié. Il est compatible avec le type de données Numérique lorsque la propriété Taille du champ a pour paramètre Entier long.

Oui/Non Valeur booléenne Oui/Non, Vrai/Faux, Activé/Désactivé. Liaison OLE Objets créés dans d'autres programmes à l'aide du protocole

OLE (images, sons, animations) et susceptibles d'être liés ou incorporés à une base de données Microsoft Access par l'intermédiaire d'un contrôle dans un formulaire ou un état. Lien Hypertexte Texte ou combinaisons de texte et de nombres enregistrés

sous forme de texte et utilisés comme adresse de lien hypertexte.

Assistant Liste de choix Crée un champ qui vous permet de choisir une valeur à partir d'une autre table ou d'une liste de valeurs grâce à une zone de liste ou d'une zone de liste modifiable.

Description : commentaire sur ce champ (attribut). Ne pas omettre cette partie car ce texte est utilisé à plusieurs reprises par Access.

Les propriétés du champ : Chaque champ possède un ensemble de propriétés qui permettent de définir la manière dont les données doivent être enregistrées, gérées et affichées. Les propriétés paramétrables pour chaque champ varient selon le type de données sélectionné.

Il y a deux onglets pour définir ces propriétés (‘Général’ et ‘Liste de choix’).

Le second est surtout utilisé lorsque les champs contiennent des valeurs qu’il faut afficher sous la forme de zone de texte, de zone de liste, de zone de liste modifiable ou de case à cocher,

Pour paramétrer une propriété de champ (onglet Général)

1. La table étant affichée en mode Création, sélectionner le champ à paramétrer. 2. Dans le bas de la fenêtre, cliquer sur la propriété à paramétrer.

3. Paramétrer la propriété.

Taille du champ Longueur maximale d'un champ de type Texte ou de type Numérique.

Nouvelles valeurs Mode de génération des nombres automatiques (incrémental ou aléatoire).

(20)

Format Présentation des données affichées ; utilisez les

formats pré-définis ou créez des formats personnalisés.

Décimales Nombre de chiffres après la virgule.

Masque de saisie Formatage des caractères pour la saisie des données. Utilisez des masques pré définis ou personnalisez-les.

Légende Intitulé du champ par défaut dans un formulaire ou un état.

Valeur par défaut Valeur entrée dans le champ lors de la création des enregistrements.

Valide si Expression qui définit les règles de saisie des données.

Message si erreur Message relatif à des données non valides entrées dans un champ.

Null interdit Paramètre indiquant si des données doivent être entrées.

Chaîne vide autorisée Paramètre indiquant si les chaînes de longueur nulle sont autorisées.

Indexé Index simples destinés à accélérer les recherches et le tri.

Compression unicode Access2000 supporte le jeu de caractère Unicode, qui définit un jeux de caractère sur deux octets pour tous les la ngages supportés par Microsoft. Le fait d’utiliser deux octets par caractère permet de supprimer le besoin d’installer des jeux de caractères spéciaux pour les langages pictographiques tel que le japonais. Access2000 peut utiliser la compression unicode pour limiter l’augmentation de taille des bases de données contenant beaucoup de texte.

• Placer la souris dans le premier champ de la grille et entrer le nom de l'attribut.

• Le passage d'un champ à l'autre s'effectue en pressant la touche [TAB], [ENTREE] ou avec la souris.

• Choisir le type de données à l'aide de la liste déroulante.

(21)

Fig1.12 : Définition de la table CLIENT

Les différents boutons de la barre d’outils sont expliqués ci-dessous :

⇒ Permet de désigner comme clé primaire la ou les colonnes sélectionnées

⇒ Affiche les propriétés des index de la table.

⇒ Insère une ligne au-dessus de la ligne en cours dans la grille.

⇒ Supprime la ou les lignes sélectionnées dans la grille.

⇒ Affiche les propriétés de la table (description et règles de validations)

⇒ Assistant générateur de champs

A l'aide du bouton "Clé primaire", désigner le champ compteur [num_cli] comme clé primaire, ce qui aura pour effet de créer un index sans doublons sur cette colonne. C'est Access qui attribuera automatiquement les numéros de clients qui ne seront pas modifiables. Les numéros des enregistrements effacés ne sont pas récupérés.

(22)

• A l'aide du bouton "Propriétés de la table" , entrez sa description.(Fig1.13)

Fig1.13 : Propriétés d'une table

1.4.1. Définition de la table CLIENT

• Saisir la structure de la table indiquée ci-dessous (fig1.14) :

Nom Type Taille

num_cli NuméroAuto (Entier long)

nom_cli Texte 30

rue_cli Texte 30

num_rue Texte 6

loc_cli Texte 30

npa_cli Texte 6

Fig1.14 : Structure de la table CLIENT

• Interdire les valeurs nulles ou les chaînes vides pour le nom, la localité et le NPA.

• Forcer le nom et la localité en majuscules (Format : >).

• Créer un index sans doublons sur le nom (Indexé : Oui - Sans doublons)

(23)

• Enregistrer la table en cliquant sur le bouton de sauvegarde

• Donner le nom CLIENT (Fig1.15).

Fig1.15 : Sauvegarde d'une table

• Pour insérer des données, cliquer simplement sur le bouton "Feuille de données" et la table vide s'affichera (voir chapitre "Insertion en mode feuille de données").

1.4.2. Définition de la table AGENCE

La structure de la table agence est la suivante (Fig1.16a):

Nom Type Taille

num_ag NuméroAuto (Entier

long)

nom_ag Texte 30

loc_ag Texte 30

npa_ag Texte 6

Fig1.16a : Structure de la table AGENCE

• Saisir la définition de la table selon les valeurs indiquées.

• Interdire les valeurs nulles ou les chaînes vides pour le nom, la localité et le NPA.

• Forcer le nom et la localité en majuscules (Format : >).

• Créer un index sans doublons sur le nom (Indexé : Oui - Sans doublons)

(24)

1.4.3. Définition des tables DEPOT et RETRAIT

Les définitions des deux tables sont très semblables et correspondent aux tableaux ci-dessous (Fig1.16b et c).

Les deux champs de liaisons (clés étrangères des relations) ne peuvent pas être du même type que dans les tables CLIENT et AGENCE car une table ne peut contenir qu'un seul champ de type NuméroAuto. Mais le type entier long est compatible avec ce dernier.

Nom Type Taille

num_dep NuméroAuto (Entier long) num_cli Nombre (Entier long)

num_ag Nombre (Entier long)

date_dep Date/Heure 8

mont_dep Monétaire 8

Fig1.16b : Définition de la table DEPOT

Nom Type Taille

num_ret NuméroAuto (Entier long)

num_cli Nombre (Entier long) num_ag Nombre (Entier long)

date_ret Date/Heure 8

mont_ret Monétaire 8

Fig1.16c : Définition de la table RETRAIT • Saisir les définitions des champs sans oublier d'indiquer à chaque fois la description et

la légende du champ (Fig1.17).

Fig1.17 : Définition de la table DEPOT.

La première des listes ci-dessous indique les différents types numériques possibles.

Pour les types entiers ou réels, il est possible d'indiquer le nombre de décimales désirées, ou d'utiliser un des formats prédéfinis et laisser la propriété "Auto".

(25)

Pour le type Date/Heure, il est possible de choisir parmi les formats présentés dans la troisième liste. Il ne s'agit que de format d'affichage qui sont compatibles entre eux. On pourra donc très bien saisir les dates selon un format abrégé et les afficher dans un autre format (Fig1.18a, b et c).

Fig1.18a :Tailles des numériques Fig1.18b : Formats des nombres Fig1.18c : Format des dates

Access permet de définir des contraintes d'intégrité statiques dès la définition de la table. (Fig1.19a et b).Ainsi, on peut exiger que tous les montants saisis soient positifs et que les dates des

transactions soient toujours inférieures ou égales à la date du jour (vérifié lors de la saisie ou de l'importation de données).

Fig1.19a : Propriété de la colonne [mont_dep] Fig1.19b :Propriété de la colonne [date_dep]

La table DEPOT et presque identique à la table RETRAIT. Il est possible de la copier, puis de la coller sous le nom de RETRAIT (Edition/Copier ou Coller) (Fig1.20).

(26)

1.5. Définition des relations entre les tables

Access permet de définir des relations permanentes entres les différentes tables d'une base de données, ceci pour deux raisons :

permettre d'effectuer automatiquement les jointures nécessaires lors de la création de requête, même s'il ne s'agit pas d'équijointures.

appliquer une intégrité référentielle sur les données des tables liées. Pour créer les relations nécessaires à notre exemple ( )

• Cliquer sur le bouton "Relations" de la barre d'outils "Base de données" ou sélectionner le menu Edition / Relations...

Access affiche une fenêtre vide (aucune relation n'est encore définie) et une boîte de dialogue permettant d'ajouter des tables au schéma de relation(Sans illustration).

• Ajouter les 4 tables préalablement définies en les sélectionnant dans la liste une à une et en cliquant sur le bouton "Ajouter".

• Cliquer sur le bouton "Fermer". Access affiche la fenêtre "Relations" qui contient les représentations graphiques des 4 tables(Fig1.21).

Fig1.21 : Fenêtre "Relations"

• En les faisant glisser avec la souris, disposer les tables de la même manière que sur le schéma relationnel que nous avons établi (introduction Fig 2).

(27)

Cliquer sur le champ [num_cli] de la table CLIENT et, tout en maintenant la pression, le faire glisser sur le champ [num_cli] de la table DEPOT. Access affiche alors la fenêtre de propriétés de la relation (Fig1.22).

Fig1.22 : Propriétés d'une relation

• Cliquer dans la case à cocher "Appliquer l'intégrité référentielle".

• Cliquer ensuite sur le bouton "Créer" pour valider la relation.

Le fait d'appliquer l'intégrité référentielle indique à Access qu'il devra vérifier l'intégrité des relations lors de tout ajout ou modification des données.

Par exemple, il refusera un dépôt qui fait référence à un numéro de client inexistant. Il affichera également un message d'erreur si l'on tente d'effacer la fiche d'un client lorsque des enregistrements de la table DEPOT y font référence.

Deux options supplémentaires sont disponibles :

Mettre à jour en cascade les champs correspondants : lors de la modification d'un numéro de client, Access mettra à jour automatiquement toutes les

références à cet enregistrement dans la table DEPOT.

Effacer en cascade les enregistrements correspondants : lors de la suppression d'un client, Access effacera également toutes les lignes correspondantes de la table DEPOT.

(28)

Nouveauté d’Access2000, le bouton Nouvelle relation permet de créer directement une relation entre deux tables, par l’intermédiaire de la fenêtre suivante (Fig1.23) :

Fig1.23 : fenêtre créer une nouvelle relation

• De la même manière, créer les 3 autres relations nécessaires à l'établissement de notre schéma (Fig1.24).

Fig1. 24 : Définition complète du schéma de relation.

• Cliquer sur le bouton "Enregistrer" de la barre d'outils et fermer la fenêtre pour revenir à la fenêtre "Base de données".

(29)

1.6. Insertion des données

Access fournit 4 possibilités d'insérer des données dans une table :

• Insertion directe depuis la feuille de données.

• Ajout de données depuis un formulaire.

• Importation de données en bloc depuis un fichier texte ou HTML, une feuille de MS Excel ou une table d'un des SGBD suivants : Access (évidemment), Lotus, Paradox, FoxPro, dBASE, Btrieve, Oracle et SQL Server (possibilité d’utiliser ODBC).

• Exécution d'une requête SQL ajout.

1.6.1. Insertion en mode feuille de données

• Depuis la fenêtre "Base de données", sélectionner la table CLIENT et presser le bouton "Ouvrir" (ou double clic sur la table CLIENT).

La table passe alors en mode feuille de donnée. C'est le deuxième mode possible pour une table, le premier étant le mode création présenté plus haut, accessible directement en pressant sur le bouton "Création", tout à gauche de la barre d'outils(Fig1.25).

Fig1.25 : Barre d'outils du mode feuille de données et basculement entre le mode création et le mode feuille de données

Les options du menu et la barre d'outils sont principalement utilisées lors des interrogations de la table. Signalons tout de même le bouton "Impression" qui permet d'envoyer directement les données de la table sur imprimante.

La table CLIENT est affichée sous forme tabulaire. Remarquez que les noms de colonne ne correspondent pas aux noms des champs, mais aux légendes affectées aux champs lors de la création de la table. Lorsque le curseur est positionné dans une colonne, la barre d'état (en bas de l'écran) affiche également la description du champ.

(30)

Insérons les données du premier client :

N° Nom Rue N° Localité NPA

1 ACHILLE Midi 4 MORGES 1110

• Placer le curseur dans le premier champ et presser la touche TAB car le champ [N°Client] est un compteur qui sera automatiquement incrémenté par Access.

L'indicateur en marge gauche de la ligne montre que l'enregistrement est en cours de modification et l'indicateur de nouvel enregistrement passe sur la ligne inférieure.

Taper le nom : ACHILLE, la rue : Midi, le numéro : 4, puis laisser les champs [Localité] et [NPA] vides et presser la touche TAB.

Access affiche alors un message d'erreur car nous avions précisé que la saisie des champs [Localité] et [NPA] était obligatoire (Fig1.27).

Fig1.27 : Vérification des règles d'intégrité

• Entrer la localité : MORGES et le numéro postal : 1110 et pressez TAB.

La ligne est alors validée. Contrairement à Ingres ou à dBASE, la feuille de données est dynamique et chaque ligne est donc validée individuellement (Fig1.28).

Fig1.28 : insertion des données du nouveau client

Le signe + au début de la ligne indique la possibilité de définir une sous feuille de données dans cette table. Cette possibilité sera détaillée plus loin dans ce chapitre.

(31)

Nous pouvons maintenant entrer les autres clients (Fig1.29) :

N° Client Nom Rue N°

Rue

Localité NPA

2 ROBERTO Poste 25 LAUSANNE 1000

3 MORGAN Midi 6 SERVION 1077

4 TCHUDI Poste 12 NYON 1260

5 DUPOND Simpl on 3 CHAVANNES 1022 6 BARTOLI Tribu nal 11 CRISSIER 1023 7 DUDRAGNE Tunne l 16 VEVEY 1800

8 DURANT Croix 19 LAUSANNE 1010

9 VAUCHER Lac 5 MONTREUX 1820

10 DECOSTERD Foret SAVIGNY 1073

Fig1.29 : Coordonnées des clients

1.6.2. Insertion à partir d'un formulaire

L'avantage du mode feuille de données est d'afficher plusieurs enregistrements en même temps. Mais Access permet également de saisir les données depuis un formulaire (écran de saisie).

Presser sur le bouton "Nouvel Objet : Formulaire automatique" de la barre d'outils. Ce bouton est atteignable depuis le mode "Création" ainsi que depuis la fenêtre "Base de données". Depuis le mode "Feuille de données", il s'appelle "Nouvel Objet : Table".

Fig1.30 : menu nouvel objet, formulaire instantané

Access créée automatiquement un formulaire simple dans lequel s'affiche le premier enregistrement de notre table client (Fig1.31).

(32)

Nous pouvons entrer notre dernier client :

N° Client Nom Rue N° Rue Localité NPA

11 VUADENS Mauborget 13 LAUSANNE 1000

Dans la barre d'outils "Formulaire", presser sur bouton "Nouvel enregistrements" afin de passer en mode ajout. Access affiche alors une fiche vide dans laquelle nous pouvons entrer les données. (Toujours TAB ou ENTREE pour passer d'un champ à l'autre).

• Le numéro postal saisi, presser la touche ENTER pour valider la fiche et un nouvel enregistrement vide s'affiche.

Enregistrer le formulaire avec le menu Fichier / Enregistrer le formulaire et donner le nom "Saisie des clients".

Fermer la fenêtre CLIENT (ou menu Fichier / Fermer) pour revenir à la fenêtre "Base de données".

En pressant sur le bouton "Formulaire" de la fenêtre "Base de données", on peut voir que "Saisie des clients" se trouve dans la liste des formulaires.

(33)

1.6.3. Importation de données depuis un fichier texte

Parmi les nombreux formats de données que Access peut importer, voyons l'exemple d'un fichier texte AGENCE.TXT contenant les informations sur les agences :

"nom_ag";"loc_ag";"npa_ag" "LA MARQUISE";"MORGES";"1110" "EPARGNE";"NYON";"1260" "SUCC. OUCHY";"LAUSANNE";"1000" "AGENCE CENTRALE";"LAUSANNE";"1012" "SUCC. GARE";"LAUSANNE";"1010" "HOTEL LE LAC";"MONTREUX";"1820" "SUCC. BELLEVAUX";"LAUSANNE";"1000" "CENTRE COMMERCIAL";"MONTREUX";"1820" "LES ROSES";"YVERDON-LES-BAINS";"1400" "LA FONTAINE";"NYON";"1260"

Le fichier comporte les noms de champs sur la première ligne et les données sont séparées par des points-virgules. Il s'agit d'un fichier texte délimité. Le fichier ne comporte pas de numéro d'agence, c'est Access qui les attribuera automatiquement.

• Depuis la fenêtre base de données, sélectionner le menu

Fichier / Données externes / Importer.

Access affiche une fenêtre de dialogue pour sélectionner les données à importer et permet de sélectionner le type de fichier (Fig1.32).

Fig1.32: Format des données à importer

• Sélectionner le format Fichiers texte , et le fichier AGENCE.TXT depuis la boîte "Importer" et presser le bouton "Importer".

(34)

• La première fenêtre permet de définir que les données contenues dans le fichier texte sont délimitées (Fig1.33). Sélectionner le format "Texte (délimité)"

Fig1.33 : Format du fichier de données texte

Access demande alors des précisions sur l'opération à effectuer (Fig1.34) :

Fig1.34 : Ajouter les données importées dans la table AGENCE

(35)

• Ajouter les enregistrements à la table AGENCE (Fig1.35).

Fig1.35 : Ajouter les données importées dans la table AGENCE • Presser "terminer".

Access démarre l'importation et indique le résultat dans la boîte suivante (Fig1.36) :

(36)

• De retour dans la fenêtre "Base de données", ouvrir la table AGENCE pour vérifier le résultat (Fig1.37).

On remarque que les informations des agences sont bien ajoutées à la table et que Access a complété le champ NuméroAuto [num_ag] :

Fig1.37 : Données importées (AGENCE)

La table DEPOT est à remplir de la même façon avec les données qui proviennent du fichier DEPOT.TXT (Fig1.38).

(37)

1.7. Consultation des données

Access fournit 4 possibilités d'interroger les données de la base :

• Effectuer des recherches directement depuis le mode "Feuille de données".

• Création graphique d'une requête sélection.

• Interrogation avec le module Access SQL

• Définition d’une sous-feuille de données (nouveauté Access2000)

Note :Durant cette manipulation, nous allons principalement travailler sur la table DEPOT qui contient déjà des informations, même s'il serait plus logique de faire intervenir quelquefois les retraits

1.7.1. Interrogation en mode feuille de données

Access permet d'effectuer des recherches simples sur une table directement à partir de la feuille de données.

• Ouvrir la table CLIENT depuis la fenêtre "Base de données".

La barre d'outils "Feuille de données" contient (entre autres) les boutons suivants :

"Ordre croissant", trie les enregistrements du champ sélectionné.

"Ordre décroissant", trie les enregistrements du champ dans l'autre sens.

"Filtrer par sélection", sélectionne la ligne courante.

"Filtrer par formulaire", affiche une liste modifiable avec les éléments du champ.

"Appliquer/ Supprimer le filtre ", permet d'appliquer le filtre préalablement défini.

"Rechercher", permet d'effectuer des recherches de valeurs dans la tables.

• Placer le curseur dans le champ sur lequel on désire effectuer une recherche, par exemple le champ [Nom].

• Cliquer sur le bouton "Rechercher".

Access affiche une boîte de dialogue qui permet de spécifier la chaîne recherchée. Il est possible d'utiliser les caractères joker habituels. Recherchons les noms de client dont la troisième lettre est un "P" :

• Saisir la chaîne "??P*" dans le champ Rechercher et cliquer sur "Suivant"(Fig1.39).

(38)

Access trouve l'enregistrement "DUPOND" dans la table tout en gardant la fenêtre de recherche active. Cliquer sur le bouton "Suivant" pour trouver les autres enregistrements correspondant au critère de recherche.

• Cliquer sur "Fermer" pour revenir à la feuille de données.

Placer le curseur dans la colonne [Localité].

• Cliquer sur le bouton "Ordre croissant". Access réaffiche alors la table avec les enregistrements triés par ordre croissant de localité (Fig1.40).

Fig1.40 : Tri des enregistrements sur la localité

Les boutons de contrôle en bas de la fenêtre permettent déplacer le curseur de la table d'un enregistrement à l'autre ou sur le premier et le dernier.

• Pour supprimer ce tri, cliquer sur le bouton "Supprimer le filtre".

Nous désirons maintenant afficher tous les dépôts supérieurs ou égaux à 1000.- effectués entre le 1er et le 5 novembre.

• Ouvrir la table DEPOT depuis la fenêtre "Base de données".

Choisir le menu Enregistrement / Filtre / Filtre/tri avancé.

Access affiche la fenêtre de définition du filtre (Fig1.41). Il s'agit en fait d'une version simplifiée de la fenêtre de définition de requêtes expliquée plus tard.

(39)

Avec la souris, faire glisser le champ [mont_dep] de la table vers la première rubrique "Champ" de la grille.

Dans la ligne "Critère", introduire ">=1000".

Faire glisser le champ [date_dep] dans la deuxième colonne de la grille.

Introduire le critère : "entre 1.11.99 et 5.11.99".

Pour des raisons de convivialité et de compatibilité avec d'autres systèmes, Access est très souple au niveau des formats des expressions. La version française comprend en plus une syntaxe traduite, tout en supportant la syntaxe anglaise.

Ainsi, nous aurions pu écrire notre critère : "Between 1 novembre 1999 and 5/11/99"

• Cliquer ensuite sur le bouton "Appliquer filtre".

Access revient à la feuille de données en appliquant les critères définis (Fig1.42) :

Fig1.42: résultat de l'application du filtre

1.7.2. Interrogation à l'aide d'une requête

Le mode feuille de données ne permet que des requêtes très simples portant sur une seule table. Par exemple, il est impossible d'afficher tous les clients ayant effectué un dépôt, car cela implique une jointure entre les tables CLIENT et DEPOT.

La deuxième manière d'interroger les tables de la base de données consiste à créer une requête :

• Dans la fenêtre "Base de données", cliquer sur le bouton "Requête".

• Cliquer sur le bouton "Nouveau".

Comme pour les tables, Access propose un assistant qui nous aidera à automatiser la création de requêtes complexes comme :

• Requête simple : effectue une requête de sélection à partir des champs sélectionnes

• Analyse croisée : affichage du résultat sous forme de feuille de calcul.

• Trouver les doublons dans une table.

(40)

Nous allons créer une requête affichant tous les dépôts effectués contenant les noms de clients et d'agences, triés par client et par date.

• Cliquer sur "mode création"

Access affiche une fenêtre demandant sur quelles tables va porter la requête (Fig1.43). Il s'agit ici des tables CLIENT, DEPOT et AGENCE.

• Sélectionner la table CLIENT, puis cliquer "Ajouter", ou double-clic sur CLIENT.

• Idem pour DEPOT et AGENCE, puis cliquer "Fermer".

Fig1.43: Sélection des tables utilisées dans la requête

Les tables sélectionnées apparaissent sous forme graphique dans la fenêtre de création de requête. Les relations permanentes définies entre le s tables sont ajoutées automatiquement.

Nous devons maintenant indiquer quels sont les champs que la requête va retourner (Fig1.44).

Fig1.44: Définition de la requête.

(41)

Ajouter le champ [nom_cli] de CLIENT et le champ [num_cli] de DEPOT.

Ajouter le champ [nom_ag] de AGENCE et le champ [num_ag] de DEPOT.

Terminer avec les champs [date_dep] et [mont_dep] de DEPOT.

Dans la ligne "Tri" de la colonne [nom_cli], sélectionner "Croissant".

Idem pour la colonne [date_dep].

Une fenêtre requête comporte 3 modes de fonctionnement disponibles (Fig1.45) :

⇒ Le mode "Création"

⇒ Le mode "Feuille de données"

⇒ Le mode "SQL"

Fig1.45 : mode de fonctionnement des requêtes

• Cliquer sur le mode "Feuille de données".

La requête est alors exécutée. Le résultat est affiché dans une feuille de réponse (Fig1.46):

Fig46: feuille de réponse dynamique de la requête

Il est important de remarquer que nous n'avons pas eu besoin de spécifier la jointure à effectuer entre ces trois tables; non pas parce qu'il s'agit ici d'équijointures, mais parce que Access utilise le schéma de relations que nous avons établi pour déterminer la manière de lier les tables.

(42)

Pour sauvegarder la requête, sélectionner le menu Fichier / Sauvegarder la requête et donner le nom "Dépôts avec noms" (Fig1.47).

Fig1.47:Enregistrement de la requête

La requête définie peut être enregistrée sous la forme d’une requête normale, d’un formulaire ou d’un état. Ces éléments supplémentaires seront définis plus loin dans ce chapitre.

Fermer la requête avec le menu Fichier / Fermer.

La requête "Dépôts avec noms" est alors ajoutée dans la liste de la fenêtre "Base de données". Par la suite, cet objet "Requête" pourra être utilisé comme une table (puisqu'il s'agit d'une vue). On pourra donc créer une autre requête ou un formulaire basé sur "Dépôts avec noms".

Voici un autre exemple de requête qui affiche le nom des clients et la somme des dépôts qu'ils ont effectués durant le mois de novembre (Fig1.48):

Fig1.48: requête avec regroupements et critères de sélection

(43)

• L'opération à effectuer sur les montants est la somme. Pour que la ligne opération soit disponible, il faut sélectionner opération dans le menu Affichage lorsque la requête est en mode création (Fig1.48b)

Fig1.48b: Menu affichage, opération

• La sélection se fait sur les dates dont on ne demande pas l'affichage. La feuille de réponse à cette requête est la suivante (Fig1.49).

Fig1.49: feuille de réponse dynamique

Les deux requêtes que nous avons vues sont des requêtes sélections qui ne modifient pas les tables de la base. Citons simplement les autres types de requêtes que l'on peut créer depuis la même fenêtre (Fig1.50) :

⇒ "Sélection"

⇒ "Analyse croisée"

⇒ "Requête création de table"

⇒ "Requête mise à jour"

⇒ "Requête ajout"

⇒ "Requête suppression"

(44)

1.7.3. Requêtes SQL

Malgré le module de création graphique des requêtes, SQL reste le langage d'interrogation de Access. Il est d'ailleurs possible de basculer dans le mode "SQL" d'une requête pour voir comment Access fait la traduction en SQL.

De manière générale, Access SQL supporte la norme ANSI-SQL89 niveau 1. Cela signifie qu'il est capable de traiter des requêtes qui sont conformes à la norme. Les fonctions de base dont nous avons besoin pour cette notice, qui reste une introduction à SQL, sont toutes traitées de façon conforme à la norme ANSI.

Avec le moteur JET 4.x (à partir de Access2000), le fournisseur Microsoft OLE DB met à

disposition davantage de syntaxe ANSI-SQL 92. Le but est de limiter les modifications à effectuer entre une application Access et une application SQL Server, qui utilise le Transact-SQL (ou T-SQL), autre « dialecte » SQL de Microsoft.

Inversement, Le moteur JET SQL possède des mots réservés qui ne sont pas gérés dans le SQL ANSI.

Cette conformité partielle permet à Access de traiter des requêtes provenant, par exemple, d'un programme Visual Basic selon le même principe que le ESQL/ADA de Ingres.

Il est également possible d'écrire des requêtes SQL directement dans Access.

• Depuis la fenêtre "Base de données", créer une nouvelle requête vierge.

• Cliquer le bouton "Fermer" de la boîte de dialogue "Ajout de table", sans ajouter aucune table.

• Cliquer sur le bouton de mode "SQL".

Access affiche alors une fenêtre texte qui permet de taper une requête SQL(Fig1.52) :

(45)

Cette requête affiche le nom et la localité de toutes les agence où ont eu lieu des dépôts, classés par ordre alphabétique des agences (Fig1.53) :

Fig1.53 : Feuille de réponse de la requête SQL.

Au niveau du langage SQL, Access fournit encore 3 possibilités intéressantes (Fig1.54):

Fig1.54 : Requêtes SQL spécifique.

Union : permet de créer une requête d'union entre deux tables ou requêtes.

SQL direct : à ne pas confondre avec le "Mode SQL", il s'agit d'un module qui permet de donner des requêtes à exécuter sur un serveur SQL.

Définition des données : permet de créer des requêtes de définition des données comme la modification des structures ou la suppression de table.

(46)

1.7.4. Sous-feuilles de données :

Les sous-feuilles de données sont une nouveauté de Access2000. C’est un moyen de consulter les données par association, en respectant leur hiérarchie. Chaque sous- feuille présente les

enregistrements (provenant d’une autre table ou d’une requête) qui ont un lien direct avec la ligne de la feuille de données principale concernée. La hiérarchie n’est pas limitée à une seule sous-feuille de données, on peut également utiliser des sous-sous (etc…)sous-feuilles de données.

Comme exemple, nous allons créer une sous- feuille de données dans la table AGENCE, pour afficher les dépôts effectués dans chaque Agence.

Pour créer une sous-feuille de données, il suffit de cliquer sur le « + » qui figure dans la partie gauche de la table AGENCE

Remarque : le signe « + » n’apparaît que si l’insertion d’une sous- feuille de données est possible.

La fenêtre suivante permet de définir à partir de quel élément la sous- feuille de données va être créée (Fig.1.55). La source peut être soit une table, soit une requête.

Sélectionner la table DEPOT, pour indiquer que la sous- feuille de données doit être définie à partir de cette table.

(47)

Les Champs fils et Champs père permettent de préciser la relation entre les deux tables. Les champs correspondants sont définis automatiquement par Access2000, mais les valeurs peuvent ensuite être modifiées par l’utilisateur.

Les sous-feuilles de données sont visibles directement en mode feuille de données (Fig1.56).

(48)

1.8. Conception et utilisation d'un formulaire

Pour créer notre application de gestion, nous avons besoin de formulaires personnalisés pour une saisie ou une consultation plus agréable des informations.

1.8.1. Formulaire instantané

Nous avons déjà créé un formulaire très simple pour la saisie des clients. Nous allons créer le même pour les agences :

• Dans la fenêtre "Base de données", se placer sur la table AGENCE et cliquer sur le bouton "Formulaire instantané". Access crée alors automatiquement un petit formulaire de saisie.

A l'aide de la commande Fichier / Enregistrer, sauver sous le nom [Saisie des agences].

1.8.2. Personnalisation d'un formulaire

Reprenons notre formulaire de saisie des clients pour améliorer sa présentation :

Sélectionner le formulaire [Saisie des clients] dans la fenêtre "Base de données" et cliquer sur le bouton modifier.

Access ouvre le formulaire en mode création(Fig1.57). Comme pour les tables, les deux boutons à gauche de la barre d'outils permettent de basculer entre le mode création et le mode formulaire .

Fig1. 57 : Formulaire en mode création avec la boîte à outils

L'en-tête et le pied de page du formulaire sont atteignables par le menu Affichage/ En-tête/pied de page

La boîte à outils est accessible depuis le menu Affichage => boîte à outils

Tous les objets présents dans un formulaire (champ, zone de texte, zone de liste, etc...) sont appelés des contrôles. Chaque contrôle possède une liste de propriétés que l'on peut modifier en faisant un double-clic sur le contrôle. Pour obtenir la liste des propriétés du formulaire même, double-clic dans le carré blanc en haut à gauche de la fenêtre.

(49)

En mode création, Access ouvre une boîte à outils flottante qui va nous permettre d'ajouter des contrôles. Certaines fonctions comme l'ajout de boutons ou de graphique peuvent faire appel à un assistant qui automatise la création du nouveau contrôle.

La fonction des différents outils est présentée rapidement ci-dessous (Fig1.58). Il est bien sûr conseillé de faire appel à l'aide (rubrique "Boîte à outils") pour plus de détails.

Fig1.58 : Fonctions de la boîte à outils

Sélection des objets Intitulé

Groupe d'options Bouton d'option

Zone de liste modifiable Bouton de commande Cadre d'objet indépendant Saut de page Sous- formulaire/sous-état Rectangle Assistants contrôle Zone de texte Bouton bascule Case à cocher Zone de liste Image

Cadre d'objet dépendant Contrôle onglet

Trait

Autres contrôles (ActiveX)

Ajouter un contrôle

• Sélectionner le type de contrôle désiré dans la boîte à outils, puis cliquer dans le formulaire à l'emplacement désiré.

• Si le contrôle doit dépendre d'un champ. Cliquer sur le bouton "Liste des champs" Une fenêtre s'affiche avec la liste des champs de la source de contrôle du

formulaire. La source de contrôle est une propriété du formulaire qui indique la table ou la requête qui va fournir les enregistrements pour le formulaire. Dans notre exemple, il s'agit de la table CLIENT.

• Pour ajouter un simple champ, sélectionner "Zone de texte" dans la boîte à outils.

• Avec le nouveau curseur, sélectionner champ désiré dans la liste des champs.

(50)

Supprimer un contrôle

• Sélectionner le contrôle avec la souris et presser la toucher DEL ou Edition/Supprimer.

• Particulièrement utile ici, mais valable pour toutes les opérations, la commande

Edition/Annuler ou le bouton "Annuler" de la barre d'outils permet d'annuler la dernière action effectuée.

Déplacer et redimensionner un contrôle

• Cliquer sur le contrôle. Ce dernier est sélectionné ainsi que son étiquette (ici "N°Client:").

• Placer la souris sur la bordure du contrôle. Le pointeur se transforme en une petite main et il suffit de faire glisser la sélection à l'emplacement désiré. L'étiquette se déplace avec le contrôle.

• Pour déplacer l'étiquette sans le contrôle, cliquer sur la zone ombrée du coin haut-gauche de l'étiquette, le pointeur se transforme en un doigt pointé. Faire glisser l'étiquette qui est cette fois détachée du contrôle.

• Pour redimensionner un contrôle, placer le curseur en bordure sur un des petits carrés noir. Le pointeur se transforme alors en une double flèche qui permet d'étirer le

contrôle.

Changer la police et l'alignement d'un contrôle

Fig1.59: Barre de menu mise en forme • Cliquer sur le contrôle pour le sélectionner.

• Les éléments nécessaires se trouvent dans la barre d'outils "Création de formulaire", en haut de l'écran.

• Sélectionner la police désirée, sa taille, et l'alignement (gauche, droite ou centré) du texte ainsi que la mise en forme des cadres avec la barre de menu de la fig1.59. Le contrôle est automatiquement réaffiché.

Aligner plusieurs contrôles

Deux commandes utiles pour le positionnement des contrôles :

• Lorsque l'on change la police d'un contrôle, seul le texte à l'intérieur est modifié, mais le cadre ne change pas automatiquement. Pour l'ajuster au texte, exécuter la commande de menu Format / Taille / Au contenu.

• Lorsqu'on déplace des contrôles, il est souvent difficile de les aligner correctement les uns par rapport aux autres, malgré la grille. Sélectionner deux ou plusieurs contrôles à aligner en les encadrant avec la souris et exécuter la commande du menu

(51)

Ajout de cadres

• Sélectionner le bouton "Rectangle" de la boîte à outils.

• Dans le formulaire, pointer le coin supérieur gauche du cadre à dessiner et étirer ce dernier jusqu'à sa taille finale. Relâcher la souris pour terminer.

• En général, le cadre va apparaître au premier plan et masquer les contrôles placés dessous. Exécuter la commande de menu Format / Arrière-plan pour replacer les contrôles en dessus du cadre.

Ces différentes manipulations nous permettent de modifier l'aspect de notre formulaire de saisie des clients de la manière suivante (Fig1.60).

Fig1.60 : Formulaire personnalisé pour la saisie des clients

• Basculer en mode formulaire, notre écran apparaît sous sa nouvelle présentation et nous pouvons consulter et modifier les enregistrements.

• Presser les touches TAB ou SHIFT-TAB pour passer d'un champ à l'autre. On remarque alors que le champ localité est activé avant le champ NPA.

• Pour changer l'ordre de tabulation, repasser en mode création et exécuter la commande Affichage / Ordre de tabulation (fig1.61).

(52)

Sélectionner le champ [npa_cli] avec la souris et le faire glisser en dessus du champ [loc_cli] puis presser le bouton OK.

Sauver avec la commande Fichier / Enregistrer et fermer la fenêtre. 1.8.3. Formulaire basé sur une requête

Les données sur les dépôts ne sont pas faciles à saisir car la table ne contient que des numéros qui font référence aux tables CLIENT et AGENCE.

Nous allons créer un formulaire permettant une saisie beaucoup plus aisée de ces données. La méthode est basée sur deux principes :

• L'utilisation d'une requête dans un formulaire.

• L'utilisation de listes modifiables.

Dans la fenêtre "Base de données", sélectionner la requête [Dépôts avec noms] et presser sur le bouton "Formulaire instantané".

Comme nous l'avons déjà vu, Access crée un formulaire portant sur tous les champs de la requête.

Cliquer sur le champ [date_dep], puis sur le bouton propriétés (ou double-clic).

• Sélectionner la rubrique "Propriétés des données" dans la fenêtre de propriétés.

• Entrer l'expression "=Date()" dans la propriété "Valeur par défaut".

• Entrer l'expression "<= Date()" dans la propriété "Valide si".

• Entrer le texte "Pas de transaction à l'avance !" dans "Message si erreur"

Ces quelques manipulations des propriétés du champ sont un petit exemple des possibilités offertes par le paramétrages des formulaires.

Dans notre exemple, la date du jour s'affichera automatiquement dans le champ [date_dep] lors de l'ajout d'un nouveau dépôt (Fig1.62). Le système vérifiera ensuite que la date réellement entrée soie bien passée et affichera un message d'erreur si ce n'est pas le cas.

(53)

• Disposer ensuite les champs pour une meilleure présentation(Fig1.63) :

Fig1.63 : Nouvelle présentation

Dans sa forme actuelle (Fig1.61) chaque saisie crée un nouveau client et une nouvelle agence, ce qui n'est pas le comportement voulu.

La prochaine amélioration consiste à pouvoir afficher la liste des clients avec leur localité dans une liste déroulante. De cette manière, l'utilisateur pourra sélectionner le client d'après son nom et le numéro sera complété automatiquement.

Sélectionner le contrôle [nom_cli] et le supprimer.

Sélectionner l'outil "Zone de liste modifiable", puis le champ [nom_cli] dans la liste des champs.

Placer le contrôle "[nom_cli] en zone de liste" à la place de l'ancien champ nom.

Si le bouton "Assistant contrôle" de la boîte à outils est actif, Access ouvre un assistant que va nous aider à créer cette liste :

• Sélectionner "Remplir la liste depuis une table ou une requête", puis "Suivant >".

• Sélectionner la table CLIENT dans la liste proposée, puis "Suivant >".

Access affiche alors la liste des champs de la source de contrôle du formulaire, à savoir la requête (ou vue) [Dépôts avec noms].

(54)

Sélectionner les champs [nom_cli] et [loc_cli], puis "Suivant >" (Fig1.64).

Fig1.64 : Choix des champs à insérer dans la liste

• Dans la fenêtre suivante, dimensionner la largeur des colonnes d'affichage (Sans illustation).

Une zone de liste peut afficher plusieurs champs, mais n'en retourner qu'un seul. Access demande donc quelle colonne devra être liée à la liste et à quel contrôle cette valeur devra être affectée.

Sélectionner le champ [num_cli]. C'est dans ce champ que doit se retrouver l'information retournée par la liste modifiable.

Donner un nom au champ [nom_cli], puis " Terminer".

L'assistant ayant terminé son travail, il affiche la zone de liste dans le formulaire.

Effectuer la même opération pour le nom de l'agence (champ [nom_ag]).

Sauvegarder le formulaire sous le nom [Saisie des dépôts].

• Passer en mode formulaire pour vérifier le résultat (Fig1.65).

(55)

• Cliquer sur le bouton "Nouvel enregistrement" pour se positionner sur un nouveau dépôt (on peut également paramétrer le formulaire pour qu'il passe directement en mode ajout).

• Le numéro de retrait est un compteur, presser la touche TAB.

• La date est automatiquement positionnée à la date du jour, ce qui est généralement le cas. Presser la touche TAB.

• Le curseur se positionne dans la zone de liste. Cliquer sur la flèche à droite pour

dérouler la liste et choisir un client ou taper la première lettre pour une recherche rapide dans la liste.

• Cliquer sur le client concerné et presser la touche TAB.

Le numéro de client est alors automatiquement mis à jour puisqu'il est lié au nom par le lien crée lors de la création de la zo ne de liste modifiable.

• Procéder de même pour l'agence, puis saisir le montant.

• Presser la touche TAB pour valider la nouvelle entrée.

La saisie des dépôts est alors grandement simplifiée par le travail sur les noms plutôt que sur les numéros. De plus, elle est plus sûr car on est certains de sélectionner des clients existants réellement dans la base.

• Pour rechercher des enregistrements, Access offre les mêmes possibilités qu'en mode "feuille de données" sur une table, à savoir le bouton "Rechercher", les boutons de tri croissant et décroissant ainsi que l'utilisation de filtres.

Cette étape termine le chapitre sur les formulaires. Les possibilités sont presque illimitées et on ne peut que recommander de consulter l'aide pour plus de renseignements.

Figure

Fig. 1 : Schéma conceptuel de la base.
Fig. 2 : Schéma relationnel de la base.
Fig. An2000 : Pour forcer les dates sur quatre chiffres
Fig8 Poser les questions en langage naturel
+2

Références

Documents relatifs

Carlos ! Malgré les distances, tout le monde se connait ici. Sa maison est en bois, avec trois compartiments : cuisine, salle de stockage, et chambre. Il n’y a pas beaucoup de

référent.. La disjonction porte ici sur la conceptualisation [+objet] véhiculée par le N qui, en raison de l'absence d'intersection sémantique entre les items et de

du langage, c’est établir une théorie générale des signes, une sémiologie, dont la linguistique ne serait qu’un cas particulier. Décrire la langue, c’est établir un

Aussi, ces compositions savantes n'étant pas des créations du français réunionnais mais des emprunts directs au français standard, elles n'ont pas été retenues dans la

Parmi les particularités et les curiosités du dialecte de Cao Lao Hạ et dans les limites imposées par les organisateurs de ces journées, nous ne retiendrons

Dans cet article, je m’intéresserai à l’interaction entre les verbes dits «aspectuels», tels que commencer et finir, étudiés pour l’anglais par Freed 1979, qui les

15 The very visible presence of these everyday activities is testimony to “the erosion of the hegemonic authoring of Hanoi’s public spaces by the state and the rising of a city

Generally, the best contrast enhancement algorithm has low values of ALVS and ALVE, which quantify respectively the noise enhancement and the presence of ha- los, and high ALVD,