Création de la base et des tables

Nous allons créer la base de données « Magasin » qui va contenir les tables dont nous avons vu la structure dans le cours.

Création de la base de données

Lancer ACCESS, puis cliquer sur "Nouvelle base de données" et entrer «magasin.mdb» comme nom de la base.

La fenêtre Base de Données s'affiche, elle contient tous les « objets » qui peuvent composer une base Access :

Les Tables : Chaque table de la base va contenir les données se rapportant à un sujet particulier, la table «clients » va contenir les informations sur les clients. C'est l'objet fondamental de la base de données, toute requête, formulaire ou état va être basé sur une ou plusieurs tables.

Les requêtes vont être utilisées pour obtenir des données contenues dans une ou plusieurs tables à partir d'une question. Par exemple, une requête va pouvoir nous afficher la liste des clients habitant à Paris.

Les formulaires sont utilisés pour faciliter la saisie et la modification des données d'une table, par exemple, le formulaire "client" va permettre d'entrer de façon conviviale les informations concernant un client. On peut les saisir sans formulaire, ce que nous verrons, mais cette méthode est moins conviviale.

Les états permettent d'imprimer des données contenues dans des tables selon une présentation définie en y intégrant éventuellement des calculs.

Les macro commandes permettent d'automatiser une suite d'opérations répétitives.

Les modules sont des programmes écrits en Visual Basic for Application (VBA) pour réaliser des opérations qui seraient trop complexes en utilisant les seules fonctionnalités d'Access.

Création d'une table

Cliquer sur Nouveau

Access propose 5 méthodes pour créer une table :

Mode feuilles de données : ce mode permet de saisir directement des informations dans la table sans se préoccuper du nom ou du format des champs, la définition du nom et du format sera faite plus tard.

Mode création : On utilisera cette méthode le plus souvent, elle permet de créer les noms et la structure de chaque champ de la table.

Assistant Table : Access propose différent modèles de tables prédéfinis (carnet d'adresses, factures, etc...) et crée la table, vous devrez la personnaliser ensuite pour qu'elle réponde à vos besoins.

Importer la table : Si les données de votre table sont déjà contenues dans une autre table, dans un fichier ou dans une autre base de données, vous pouvez utiliser cette méthode pour importer vos données dans une nouvelle table.

Attacher une table : Cette option sert à attacher une table avec une autre table contenue dans une autre base de données, nous ne l'utiliserons pas.

Nous utiliserons ici le mode création : La création de la table s'effectue en remplissant les trois colonnes « Nom du champ », « Type de données » et « Description » Chaque ligne de ce tableau contient les informations de chaque champ :

Le nom de chaque champ de la table (de 1 à 64 caractères)

Le type de données (voir plus bas) à choisir parmi 9 types proposés par Access

La description du champ (255 caractères maximum)

Pour une compatibilité maximale avec d'autres systèmes de gestion de bases de données, il est conseillé d'utiliser pour le nom des champs uniquement des minuscules et de ne pas employer de caractères « exotiques » ou même d'espaces.

Exemple : préférer num_client à N° Client.

Les types de données

Chaque champ peut contenir des données de différents types : le nom du client va contenir des caractères alphabétiques, le code postal va contenir des chiffres, la date de livraison une date, un champ prix va contenir des valeurs monétaires.

Il faut choisir, pour chaque champ de la table, le type de données le plus approprié, en effet, rien n'interdit de choisir comme type de données pour un champ contenant une date ou un code postal un type « texte » ou pour champ contenant un prix un type « numérique », mais autant utiliser les types les plus appropriés !

Les différents types sont :

Texte : Pour un champ destiné à contenir des caractères alphanumériques (lettres et/ou chiffres), attention, le champ de type texte ne peut contenir plus de 255 caractères, on l'utilise pour un nom, une adresse, etc...

Mémo : Même utilisation que le type texte, mais le champ de type mémo peut contenir jusque 65535 caractères (64 Ko). Utilisé pour une description longue par exemple

Numérique : Le champ ne pourra contenir que des nombres avec ou sans décimales. (un code postal, un n° d'identification par exemple)

Date/Heure : Le champ ne pourra contenir que des dates ou des heures (Access vérifie la validité des dates ou des heures saisies)

Monétaire : Valeurs présentées sous format monétaire (exemple : 1 23,45F)

NuméroAuto : Valeur numérique incrémentée automatiquement lors de la saisie de chaque enregistrement. Si vous choisissez ce type de champ, vous ne pourrez rien saisir dedans, c'est Access qui y placera un nombre automatiquement à chaque fois que vous créerez un nouvel enregistrement. On l'utilisera lorsqu'on veut être sur que le contenu de ce champ ne se retrouvera pas dans un autre enregistrement de la table, par exemple pour le numéro de client : chaque nouveau client aura un numéro unique automatiquement affecté par Access, c'est un champ de ce type qui sera le plus souvent utilisé pour être une clef primaire.

Oui/Non : Seules deux données sont autorisées dans ce champ : Oui et Non (on utilisera ce type de données par exemple avec un champ « réglé » qui indiquera si une facture a été réglée ou non)

Objet OLE : OLE (Object Linked and Embbeded) est une technologie utilisée par Windows, elle permet d'insérer dans une application des objets provenant d'autres applications, on utilisera un champ de ce type pour insérer dans la table une image, un son, un fichier Word, etc...

Lien Hypertexte : Un champ de ce type contiendra une adresse Internet sur laquelle on pourra cliquer directement.

La liste de choix n'est pas vraiment un type de données, nous l'étudierons plus tard.

Une fois la table « Clients » correctement renseignée, on devrait avoir quelque chose qui ressemble à ça :

Les propriétés des champs

Comme vous pouvez le constater, chaque champ a des propriétés qui dépendent de son type de données, ces propriétés vont déterminer la façon dont les données qu'il contient vont être affichées ou comment les données vont être saisies dans ce champ. Ces propriétés sont affichées dans l'onglet « Général » en bas de la fenêtre. L'onglet « Général » affiche chaque propriété du champ et, à côté, dans des champs modifiables, la valeur de cette propriété.

Ces propriétés varient selon le type de données (par exemple, un champ numérique aura une propriété « décimales » qui indiquent le nombre de chiffres après la virgule que ne peut avoir évidemment un champ de type texte)

Propriétés des champs de type Texte et Mémo

Taille du champ	Nombre de caractères maximum qui peuvent être saisis

Valeur par défaut	Texte qui sera contenu par défaut dans ce champ

Valide si	Expression pour valider la saisie, exemple : <> « machin », interdira la	saisie du mot « machin » dans ce champ

Message si erreur	Message d'erreur qui va être affiché si l'expression saisie n'est pas valide,	dans notre exemple, on pourrait mettre ici «saisie de machin interdite »

Null Interdit	Si oui, il faudra obligatoirement saisir une valeur dans ce champ

Chaîne vide autorisée	La chaîne vide est "", on peut l'utiliser lorsqu'on n'a rien à entrer dans un	champ obligatoire, si cette propriété est non, il faudra obligatoirement	saisir du texte dans ce champ

Indexée	Le champ est un index avec ou sans doublons, si l'index n'a pas de	doublons, il ne sera pas possible de saisir deux fois le même contenu pour	ce champ dans la table

Format	Va définir comment le contenu du champ va être affiché (voir plus loin)

Masque de saisie	Oblige à saisir le contenu du champ selon un format précis (par exemple	un numéro de téléphone), on verra ça plus loin

Tous les autres types de données ont des propriétés similaires, certains ont des propriétés supplémentaires.

Propriétés des champs de type numérique

Taille du champ	Définit la valeur maximale qui va pouvoir être contenue dans ce champ.	Il faudra faire attention et bien penser à l'avance quelle sera la valeur	maximale permise dans ce champ pour pouvoir ajuster au mieux cette	propriété :

Octet :	0 à 255
Entier :	-32767 à +32768
Long :	-2147483648 à +2147483649
Réel Simple :	-3.48E38 à +3.40E38
Réel Double :	-1.79E308 à + 4.96E324

Plus on descend, plus le champ occupera de la place en mémoire et sur le	disque dur (le Réel Double prend 8 fois plus de place que l'octet), pensez-	y si la table contient des milliers de lignes...

Décimales	Nombres de chiffres après la virgule

Propriétés des champs de type NuméroAuto

Nouvelles valeurs	Indique quelle sera la prochaine valeur contenue dans un champ de type	NuméroAuto : avec Incrément, la valeur sera égale à la valeur créée dans	le précédent enregistrement+1, avec Aléatoire, Accès remplira ce champ	avec une valeur tirée au hasard (mais qui ne se retrouvera pas dans un	autre enregistrement).

Le format d'affichage

Nous avons vu plus haut qu'on peut modifier la façon dont les données contenues dans les champs peuvent être affichées ou forcer leur saisie selon un format précis.

La façon dont les données sont affichées se fait par l'intermédiaire de la propriété "Format d'affichage".

Attention, la façon dont les données sont affichées dans un champ ne modifie en rien le contenu de ce champ dans la table. Par exemple, si vous forcez à afficher un '1' avant le contenu d'un champ, si ce champ contient '234', la valeur affichée sera '1234' mais le contenu du champ dans la table sera toujours '234'. La propriété 'format d'affichage' n'influe que sur la façon dont les données d'un champ vont être affichées.

Pour modifier le format d'affichage, on utilise les codes suivants (quand ils marchent...)

Codes du format d'affichage

"texte"	Affiche le texte "texte" dans le champ

!	Justifie à droite le contenu du champ

*c	Remplace les espaces par le caractère c

[couleur]	Affiche le contenu du champ dans la couleur "couleur"

Formats d'affichage spécifiques aux champs Texte et Mémo

@	Va afficher un espace si on a rien saisi

<	Va afficher le texte en minuscules

>	Va afficher le texte en majuscules

Formats d'affichage spécifiques aux champs Numériques et Monétaires

Nombre général	Affiche le nombre tel qu'il a été saisi

Monétaire	Nombre avec séparateur de milliers + 2 chiffres après la virgule +	symbole monétaire

Fixe	Affiche au moins un chiffre + 2 chiffres après la virgule

Standard	Nombre avec séparateur de milliers + 2 chiffres après la virgule

Pourcentage	Multiplie le nombre par 100 et ajoute le symbole %

Scientifique	Nombre au format décimal avec exposant

Formats d'affichage spécifiques aux champs Date / Heure

Date, général	Par défaut, affiche la date sous le format JJ/MM/AA HH:MM:SS (si il n'y	a pas d'heure, affiche seulement la date)

Date, Complet	Affiche la date complète comme prévue dans le panneau de	configuration de Windows

Date, Réduit	Affiche par exemple 1-jan-99

Date, Abrégé	Affiche la date abrégée comme prévue dans le panneau de configuration	de Windows

Heure, Complet	Affiche l'heure comme prévue dans le panneau de configuration de	Windows

Heure, Réduit	Exemple : 5:34 PM

Heure, Abrégé	Exemple : 17:34

Pour les champs de type OUI/NON

Access propose pour ce type de champ, trois types d'affichage par défaut : à la place de OUI ou NON, on peut afficher "Vrai" ou "Faux" ou alors "Actif" ou "Inactif", si on veut afficher un autre message, il faut dans le champ format de la propriété du champ taper la commande suivante : ;"texte 1";"texte 2" "texte 1" sera affiché à la place de Oui et "texte 2" à la place de Non. On peut, bien sur, utiliser des codes d'affichages supplémentaires, par exemple : ;"OK"[vert];"NON"[Rouge] affichera OK en vert à la place de Oui et NON en rouge à la place de Non. N'oubliez pas que la ligne commence par le symbole ";"

Le Masque de saisie

Le masque de saisie permet de faciliter la saisie dans un champ en forçant l'utilisateur à entrer les données selon un format déterminé, les informations stockées dans la table auront le format défini dans le masque de saisie contrairement au format d'affichage qui affectait seulement la façon dont les données contenues dans un champ allaient être affichées. Le masque de saisie, est constitué d'une combinaison de caractères :

0	Chiffre de 0 à 9 obligatoire

9	Chiffre ou espace facultatif

#	Chiffre ou espace ou + ou -

L	Lettre de A à Z obligatoire

?	Lettre de A à Z non obligatoire

A	Lettre ou chiffre obligatoire

a	Lettre ou chiffre facultatif

&	Caractère quelconque obligatoire

C	Caractère quelconque facultatif

<	Passe en minuscules

>	Passe en majuscules

!	Saisie à partir de la droite

Par exemple, si on veut saisir 5 chiffres obligatoirement pour un code postal, on utilisera : 00000, si on veut saisir une suite de 3 chiffres et de 3 lettres : 000LLL, si on veut saisir un numéro de téléphone : 00-00-00-00-00, ou un nom de famille dont la première lettre est toujours en majuscules : >L<????????????? (prévoir autant de ? que le nom peut comporter de lettres)

Les Listes de choix

Nous avons vu précédemment que parmi les types de données est proposé un type de données particulier : la liste de choix, la liste de choix n'est pas à proprement parler un type de données particulier, c'est un moyen de simplifier la saisie de données dans une table en proposant à l'utilisateur de cliquer sur un élément proposé dans une liste, le champ de la table sera rempli avec l'élément sélectionné dans la liste. Pour pouvoir tester cela, nous allons créer la table "Commandes". Noubliez pas d'enregistrer la table « client » avant de la fermer !

Après avoir enregistré les modifications, nous allons retourner dans la table client et modifier le type de données du champ "Titre", Le champ "Titre" va contenir le titre du client : Monsieur, Madame, Mademoiselle. Au lieu de saisir à chaque fois le mot en entier, nous allons créer une liste de choix qui proposera ces trois titres, il suffira de cliquer sur l'un d'entre eux pour remplir automatiquement le champ.

Après avoir choisi le type "Assistant Liste de Choix" pour le champ "Titre", la fenêtre suivante s'affiche

Il y a deux façons de créer une liste de choix : soit a partir du contenu d'une autre table (ce que nous verrons après), soit à partir d'une liste que l'on va taper soi-même une fois pour toutes, c'est ce que nous allons choisir. (Cliquez ensuite sur Suivant)

On va taper dans la colonne Col1 la liste des titres possibles et cliquer sur Suivant une fois terminé.

On nomme ici la liste de choix (peu importe le nom choisi) et on clique sur "Terminer" Maintenant, pour voir le résultat, nous allons saisir des données dans la table "Clients", dans la fenêtre où se trouve la liste des tables, on clique sur "Ouvrir", on arrive alors sur un tableau qui ressemble à ça :

Il y a une ligne par enregistrement, et une colonne par champ, on se positionne sur le champ désiré en cliquant dessus et on saisit directement les données.

Et que se passe-t-il lorsqu'on clique sur "Titre" ? La liste de choix apparaît, on peut choisir ici un des titres proposés en cliquant dessus directement !

On peut voir que "Monsieur" a été entré directement dans le champ "Titre". On va ainsi créer plusieurs clients :

Une fois ces clients saisis, nous allons aller modifier le type de données du champ "N° Client" de la table commande pour y mettre une liste de choix.

Pourquoi ? Une commande contient le numéro du client qui l'a passé, lorsque l'on saisi une commande et qu'on a que le nom du client, il faut se souvenir de son numéro pour le taper, la liste de choix va ici proposer la liste de tous les clients se trouvant dans la table "Clients", il suffira de cliquer sur le nom de l'un d'entre eux pour que son numéro soit automatiquement entré dans le champ "N° Client" de la table "Commande".

Voici comment faire :On change le type de données du champ "N° Client" dans la table "Commande" et on choisit "Assistant Liste de Choix". Cette fois-ci, nous n'allons pas saisir tous les éléments de la liste, ça n'aurait pas de sens, il faudrait remodifier cette liste à chaque fois qu'on ajoute un nouveau client. Nous allons dire à Access de construire sa liste de choix en allant chercher les éléments de cette liste dans une autre table, pour ça on clique juste sur "Suivant".

Access nous affiche les autres tables de la base :

On choisit "Clients" (!) et on clique sur Suivant

Access nous demande ici quels vont être les champs de cette table qui vont être affichés dans la liste, nous n'avons besoin que du numéro du client, de son nom et de sa ville (au cas où il y aurait deux clients homonymes). On sélectionne à gauche les champs que l'on désire voir apparaître dans la liste, et on clique sur ">" pour les ajouter, sur "<" pour les retirer, ">>" et "<<" ajoutent et retirent tous les champs.

Access affiche un exemple du contenu de la liste. Vous pouvez ici dimensionner la taille des colonnes.

On clique sur Suivant, on nomme la liste, et on peut commencer à saisir des commandes :

Que se passe-t-il lorsqu'on se positionne sur le n° de client ? Access va lire toute la table "Clients", et créer une liste de choix à partir de cette table. Cette liste contient les champs que nous lui avons indiqué. Il suffit de sélectionner un client dans la liste, et comme nous lui avons dit d'initialiser le champ N° Client de la table "Commande" avec la première colonne de la liste de choix, son nom sera automatiquement copié.

C'est beau non ?

La saisie des enregistrements

Jusqu'à présent, nous avons saisi rapidement des enregistrements dans les tables, attardons nous sur la saisie et les recherches / filtres

Pour se déplacer parmi les enregistrements de la table, on utilise les icônes fléchés en bas à gauche de la fenêtre de saisie:

De droite à gauche :

Aller sur le 1er enregistrement
Aller sur l'enregistrement précédent
Aller sur l'enregistrement suivant
Aller sur le dernier enregistrement
Créer un nouvel enregistrement

Pour supprimer un enregistrement, on clique à gauche de la ligne

et on appuie sur la touche "Suppr", Access vous demande alors une confirmation.

Deux petits trucs avant d'en finir avec la saisie de données dans les tables :

On peut cacher une colonne, pour ça, ouvrir la table « client ». On va ensuite dans le menu "Format", et on clique sur l'option "Afficher les colonnes..."

La liste des champs (colonnes) de la table s'affiche, vous sélectionnez celles que vous voulez voir apparaître, celles que vous n'avez pas sélectionné disparaîtront de l'affichage quand vous cliquerez sur "Fermer".

Attention, ça les fait juste disparaître de l'affichage pour la saisie, en aucun cas, le champ en question va être supprimé de la structure de la table.

Autre truc intéressant, on peut "figer" une colonne. Si pendant la saisie nous voulons avoir en permanence le numéro client , nous allons sélectionner la colonne en cliquant sur son titre :

Une fois la colonne sélectionnée, on va dans le menu "Format" et on clique sur "Figer les colonnes". Que se passe-t-il maintenant ? Quand on va déplacer l'ascenseur en bas pour modifier un des champs de l'enregistrement, la colonne "N° Client" sera toujours visible :

Si la colonne n'était pas figée, on aurait eu :

La colonne "N° Client" a bougé quand on a déplacé l'ascenseur, lorsqu'elle était figée, elle était bloquée. Pour autoriser le déplacement de toutes les colonnes et annuler l'option "Figer les colonnes", dans le menu "Format", cliquez sur l'option "Libérer les colonnes".

Tri parmi les enregistrements

Pour trier la table sur un champ, on se positionne sur le champ en question (peu importe l'enregistrement) et on utilise un des deux icônes de la barre d'outils :

Celui de gauche permet le tri alphabétique croissant et celui de droite le tri alphabétique décroissant.

Exemple :

Ceci est l'état de notre table après l'avoir trié de façon croissante sur le champ "Nom"

Filtrer des enregistrements

Les filtres permettent de limiter, de façon temporaire, les enregistrements affichés dans la table. On peut filtrer selon deux méthodes.

Le filtre sur un seul critère

Par exemple, on ne veut afficher que les clients qui habitent Paris. Pour cela, on se positionne sur l'enregistrement d'un client habitant Paris, et on sélectionne le mot "Paris" dans le champ "Ville":

Puis on clique sur l'icône du filtre dans la boîte à outils :

Ne s'affichent à présent que les client habitant à Paris. On peut aussi limiter le filtre à une partie d'un mot, par exemple, on aurait pu sélectionner seulement la lettre "P" du mot "Paris", ne se seraient alors affichés que les clients dont le nom de la ville commence par "P".

Pour faire réapparaître tous les enregistrements, on clique sur l'icône :

Filtre sur plusieurs critères

On clique sur l'icône :

Un enregistrement vide s'affiche. Supposons que l'on veuille afficher les clients qui s'appellent "Machin" ou qui habitent à Saint-Quentin.

On va cliquer sur "Machin", si on voulait afficher les clients qui s'appellent "Machin" et dont le prénom est "Robert", on cliquerait sur "Robert" dans la colonne "Prénom". Vous avez remarqué que, en bas, se trouvent deux onglets :

En cliquant sur l'onglet "Ou", vous obtenez un nouvel enregistrement vide dans lequel on va pouvoir saisir les critères de notre deuxième condition, le but étant d'avoir les clients qui s'appellent "Machin" OU qui habitent à Saint-Quentin, dans le deuxième onglet, on va sélectionner "Saint-Quentin" dans le champ ville :

Au passage, notez qu'un troisième onglet est apparu au cas où on voudrait une troisième condition.

Une fois entrée la deuxième condition, on clique sur :

Et on obtient :

Soit la liste des clients dont le nom est soit "Machin" soit la ville est "Saint-Quentin".

Vous noterez au passage qu'on peut sauver son filtre multi critère sur disque en cliquant sur l'icône disquette dans la fenêtre de filtre.

Rechercher des enregistrements

Pour faire une recherche, cliquez sur l'icône :

Rechercher	On indique ici la valeur à chercher

Sens	Indique dans quel sens va se faire la recherche :

Tout	dans toute la table
Bas	à partir de l'enregistrement courant jusque la fin de la table
Haut	à partir du début de la table jusque l'enregistrement courant

Où	Sur quoi va se faire la recherche

Champ entier	La valeur cherchée doit être le contenu exact du	champ
Début de champ	La valeur cherchée est le début du champ
N'importe où	La valeur cherchée peut se trouver n'importe où	dans le champ

Respecter la casse	Doit-on différencier les majuscules des minuscules ?

Rechercher les champs	Activez cette option si vous souhaitez qu'Access retrouve les données comme Formatés	telles qu'elles sont affichées dans la table (en utilisant la propriété	"Format" du champ) ou telles qu'elles sont stockées (c'est-à-dire telles	qu'elles ont été saisies). Par exemple : pour le code postal, on a défini un	format d'affichage : 00000 pour que si le code postal commence par 0	(comme 02100), il soit affiché correctement et pas sous la forme 2100. Si	on active l'option "Rechercher champs comme formatés", on pourra	rechercher le code postal 02100, sinon, il faudra chercher le code postal	2100

Rechercher dans	Indique si la recherche doit s'effectuer uniquement dans le champ en	cours ou dans tous les champs de la table

Par exemple, pour rechercher le client "Delune" :

On clique sur "Rechercher"

Access se positionne sur le premier enregistrement dont le contenu du champ "Nom" est "Delune" Pour trouver le suivant, on clique sur "Suivant"

En l'occurrence ici, il n'y en a pas d'autres, Access renvoie ce message.

On peut faire des recherches approximatives, pour cela on utilise des caractères génériques :

*	Remplace une chaîne de valeur quelconque

?	Remplace un seul caractère

#	Remplace un chiffre unique

[ ]	Recherche des caractères parmi plusieurs

!	Exclu certains caractères de la recherche

Exemples

La chaîne	Permet de retrouver	Mais ne retrouve pas

*rue	112 rue Boulevard Machin

?? rue	5 rue	112 rue
La rue

## rue	10 rue	La rue

DUPON[TD]	DUPONT	DUPONS
DUPOND

DUPON![TD]	DUPONS	DUPOND
DUPONT

Créez maintenant toutes les tables de la base et ajoutez-y quelques données.

IUT Digne les bains	Section Géomatique	Tables

P. AUSSAGUEL	Version du 08/10/2003 - les_tables.sxw	Page 21

Pierre AUSSAGUEL

2003-09-24T15:34:29