Vous êtes sur la page 1sur 13

MIPS10

PRO J E T D E
BA S E D E D ON N E E S
S O U S M I C R O S O F T A C C E S S

GESTION DES RESERVAT IONS CLIENTS


DANS UN CAMPING

ALAOUI-SOSSI GAËL
MASTER MIPS
FEVRIER 2011
Sommaire

INTRODUCTION ................................................................................................................... 3

1. MODELISATION DE LA BASE ................................................................................... 4

a. Introduction .............................................................................................................................. 4

b. Le cahier des charges ................................................................................................................. 4

c. Schema conceptuel .................................................................................................................... 5


C.1. Les entités ............................................................................................................................... 5
C.2. Les Associations ...................................................................................................................... 7

2. MODELISATION SUR ACCESS ................................................................................... 8

d. Les tables ................................................................................................................................... 8

e. Les relations .............................................................................................................................. 9

f. Les requêtes ............................................................................................................................ 10

g. Les Formulaires........................................................................................................................ 12

3. CONCLUSION .............................................................................................................. 13

2
GESTION DES RESERVAT IONS CLIENTS
DANS UN CAMPING

CREATION D’UNE BASE DE DONNEES ACCESS PO UR LA GESTION


DES RESERVATIONS D’UN CAMPING

I N T ROD U C T I ON

D’une manière générale une base de données est un ensemble structuré et organisé permettant le
stockage d’un nombre important d'informations.
Ceci étant et d’un point de vue informatique, (et spécifiquement du Logiciel Microsoft Access) la
base de données nous donne la possibilité, en plus de stocker ces informations, de les combiner
entre elles, de sorte d’obtenir des applications plus au moins complexes, le but étant de pouvoir
exploiter ces données selon le besoin de l’utilisateur.

D’un point de vue schématique on pourrait représenter ce principe comme ceci :

Données A

Données
Données 1
Combinées A1(%)

Access permet de combiner


ces informations pour Données (%)
obtenir de nouvelles
informations

Les requêtes permettent justement d’extraire et de combiner les données de façon pertinente.
La base est constituée de tables (tableaux de données) reliées entre elles par des relations.

J’ai souhaité orienter le sujet de création d’une base de données sur un sujet me tenant à cœur, et
qui permettra d’assurer une réelle fonction. Le sujet ainsi choisi est la création d’une base de
données pour la gestion des réservations d’un camping qui se trouve être en cours de
construction dans le nord du Maroc
L’aboutissement d’une telle base de données nous permettra l’économie d’un logiciel de gestion
de camping professionnel (au moins au début).
L’autre avantage et non des moindre, de la création de cette application est qu’elle aura été conçu
en fonction de réelle problématique identifié.
« Mon but est que cette base dépasse sa fonction première de simple projet scolaire »
A la suite du rapport je vais tenter d’apporter les meilleurs explications quand aux choix
effectués pour construire la base en mettant en évidence les étapes clés de réalisation.

3
1. M OD E L I S A T I O N D E L A B A S E

A. INTRODUCTION

Avant d’entreprendre tout travail sur le logiciel Access, il est primordial de définir le cahier des
charges régissant les fonctionnalités de la base avant de la conceptualiser. En effet ceci permettra
d’éviter de perdre du temps à chercher les fonctions désirées, mais aussi car à un certains niveau
d’avancement il sera très difficile de revenir en arrière sans tout modifier/supprimer sur Access,
je pense notamment au format des différents champs de tables.

B. LE CAHIER DES CHARGES

Compte tenu que le besoin pour la gestion d’un camping est relativement complexe, j’ai
volontairement axé le travail sur des fonctions essentielles de la base.

Besoins à assurer :

Besoin Fonction liées Détails

Gérer les -Vérifier client existant -Pour vérifier que le client existe avant
réservations clients réservation

-Ajouter client -Pour ajouter un client à la liste

-Vérifier disponibilité -Pour vérifier qu’il y a un emplacement


période/emplacement du type choisi par le client disponible
aux dates sélectionnées

-Pour ajouter la réservation du client à


-Ajout réservation la liste des réservations

Gérer les types -Ajouter Type Emplacement -Pour ajouter un nouveau type
d’emplacements d’emplacement/hébergement, ex :
Tente aménagée, Bungalow

-Liste des Types -Pour visualiser les types


d’emplacement d’hébergement/emplacement

Gérer les -Liste des emplacement du -Pour visualiser l’ensemble des


Emplacement camping emplacement du camping

-Ajouter emplacement -Pour ajouter un nouvel emplacement

Gérer les clients -Voir info client -Pour visualiser la liste client et les
informations rattachées

-Ajouter une fiche client -Pour l’ajout de nouveau client

4
Gérer les - Liste fournisseurs -Pour visualiser la liste fournisseurs
fournisseurs
-Ajouter fournisseur -Pour ajouter un nouveau fournisseur

Je souhaite donc à partir de la base de données pouvoir ajouter un client à la liste client, consulter
cette même liste.

Voir la liste des emplacements du camping et leur type (bungalow, emplacement nu, etc…)

Pouvoir lors d’une réservation, contrôler que le client existe bien, et si oui, vérifier que le type
d’emplacement est disponible aux dates choisies.

Voir la liste des réservations.

Garder un historique des réservations par client, etc….

C. SCHEMA CONCEPTUEL

C.1. Les entités

Je vais maintenant matérialiser les entités qui correspondront vraisemblablement aux tables sur
Access en fonction des éléments vue ci-dessus.

Reservation

N° de Réservation Les réservations : Ici on reprendra les informations liées aux


N° d'Emplacement réservations, à savoir le code client, le code de l’emplacement
N° de Client (emplacement unique attribué), la date de début de séjour, la date de fin
Date du début séjour
de séjour, et accessoirement les services souscrits par le client durant le
Date de fin séjour
N° de Service/option souscrit séjour. Toutes ces informations seront stockées par rapport à la clé
primaire ID_Reservation que nous verrons à la création des tables sur
Access.

Client
N° de Client Les Clients : Cette table comportera toutes les informations liées aux
N° Passeport/CI clients du camping. Ceci dans l’optique de récupérer les numéros de
Civilité téléphone, les adresses mail, voir les adresses afin de faire du mailing à
Nom des fins marketing à plus long terme. De la même manière que pour le
Prénom numéro de réservation, il y a il y a un identifiant unique par client.
E-mail
Téléphone
Adresse
Code postal
Ville
Pays
Immatriculation du véhicule

5
Les pays : La question du bien fondé de cette table s’est posée à
Pays plusieurs reprises, mais il est apparu que sa présence présentera des
opportunités si l’application est compléter avec de nouvelles fonctions.
Identifiant Pays Ceci étant cette table permet de générer la liste des pays lors de la
Nom du pays
création d’un fournisseur ou d’un client. Dans l’esprit, il y sera stocké
tous les pays du monde

Emplacement

N° d'Emplacement Les Emplacements : Contient la liste de tous les emplacements du


Type d'emplacement camping, avec des informations de prix et des détails (ex :bord de mer, à
Prix l’ombre, proximité sanitaire)

Type Emplacement

Code du Type emplacement Les Types d’Emplacements : Ce sont différents types


Type d'emplacement d’hébergement disponible selon les emplacements du camping pour le
Tarif moment il y en aura quatre :
-Emplacement Nu
-Bungalow
-Tente aménagée
-Emplacement Caravane/Camping-Car

Fournisseur
Les fournisseurs : Contient la liste de tous les fournisseurs ainsi
N°Fournisseur
que leurs coordonnées et le types de fourniture (similaire à la table
Nom
Adresse Client)
Téléphone
Ville
Pays
Type fourniture
Info complémentaire

Service/Option
Les Services : Contient les options auxquelles le client peut souscrire
N°Service/option durant son séjour
Nom du service
Détails
Prix

6
Facture

N°Facture
Les factures : En fait la table facture est en quelque sorte le transfert
N°Réservation de la réservation vers la facture. Elle servira d’archive pour le camping, et
servira de base pour la facture client.

C.2. Les Associations

Type Emplacement
Code du Type emplacement
Type d'emplacement
Emplacement Tarif

N° d'Emplacement
Type Emplacement
Info complémentaire

Client

Reservation N° de Client
N° Passeport/CI
N° de Réservation Civilité
N° d'Emplacement Nom
N° de Client Prénom
Date du début séjour E-mail
Date de fin séjour Téléphone
N° de Service/option souscrit Adresse
Code postal
Ville
Service/Option Pays Pays
N°Service/option Immatriculation du véhicule
Nom du service Identifiant Pays
Détails Nom du pays
Prix
Facture Fournisseur

N°Facture N°Fournisseur
N°Réservation Nom
Adresse
Téléphone
Ville
Pays
Type fourniture
Info complémentaire
Pas dévelloppé

A chaque table on définira par la suite une clé primaire qui permettra d’identifier chaque
entité. Par exemple pour la table Client, on prendra N° de Client que l’on nommera par
convention ID_Client. Cet ID_Client est un élément unique à la table, alors que tous les autres
champs de la table peuvent eux être redondant.

7
2. M OD E L I S A T I O N S U R A C C E S S

D. LES TABLES

Nous avons donc a priori 8 tables plus ou moins lié entre elles.

Je n’en présenterai que 3 pour l’instant, les autres suivant le même principe.

1) La table Réservation

Il y figure toutes les réservations clients avec les date


de début de séjour et de fin. Comme vue au dessus, j’ai
donc défini la clé primaire correspondant à
l’ « ID_Rerservation ». Chaque réservation étant bien
identifié par un code/numéro unique. Le choix du type
de données est primordial et crucial a cet étape du projet,
en effet il sera difficile de revenir dessus par la suite. C’est
un problème auquel j’ai été confronté.

2) La table Client

J’ai délibérément choisi le type de données texte pour


m’affranchir de problématique que j’ai rencontré avec
l’affichage de formulaire. Ici on retrouve toutes les
informations liées au client.

3) la table Emplacement

De la même manière les données sont de type texte.

8
E. LES RELATIONS

Nous avons ici donc huit tables et six relations. Une relation est le lien reliant une table
MERE à une table FILLE, ce qui implique que les enregistrements Père de la table Mère seront
plus ou moins liés aux enregistrement Fils de la Table FILLE. Ces liaisons, ou plutôt ces relations
sont générées via cette boite de dialogue.

Appliquer l’intégrité référentielle permettra de


contrôler la cohérence des données.
L’effacement en cascade permet la
suppression de tout les enregistrements d’une
table Fille qui aurait été attachés à un
enregistrements Père d’une autre table qui
aurait été lui aussi effacé.

La création des relations engendre que des attributs soient dédiés aux tables.
La première relation, précise que l’ « ID_Reservation » devient l’attribut de la table Facture.
On peut remarqué sur l’image des relations du projet, que le sens de la relation « T_Reservation »
et « T_Facture » est différent des autres relations en effet on pourrait dire par simplicité, que la
table facture extrait des données de la table « T_Reservation », mais non l’inverse. Ceci se vérifie
avec toutes les autres relations.
Par exemple la table « T_Emplacement » se sert des données de la table
« T_TypeEmplacement » pour ses enregistrements, qui elle-même sera utilisé par la table
« T_Reservation ».

Un fois les relations terminées on peut se charger de créer les requêtes ou alors des
formulaire, ou encore les deux simultanément. Pour ma part, j’ai exécuté certaines des fonctions
via macro et non pas avec des requêtes et j’ai commencé le travail de création de formulaires en
même temps que les requêtes.

9
F. LES REQUETES

Access nous permet la création de différent types de requêtes


Il y a les requêtes : - Sélection (la plus courante, permet l’affichage, les sous totaux, les tris,
les fonctions
- Paramétrée
- Analyse croisée
- Action
- Suppression
- Mise à jour
- Ajout
- Création de table

J’ai créé un certain nombre de requêtes plus ou moins complexes qui permettent de générer
une simple liste ou qui peuvent permettre de comparer des valeurs. Par exemple sur la base
rendue il y a une requête qui permet d’afficher tous les enregistrements entre les deux dates,
malheureusement je n’ai pas réussi à lui faire vérifier les enregistrements entre deux dates pour un
type d’hébergement parmi tous les emplacements disponibles.

Exemple je souhaite savoir si à la période choisie pour un type d’hébergement choisi il me


reste des emplacements disponibles. Cependant j’ai réussi à réaliser cette fonction en code VBA.

Exemple de requête :

Comme dit précédemment, j’ai réussi à réaliser des fonction obtenus directement en code
vba, comme sur n’importe quel logiciel de la suite Microsoft Office, nous avons accès à Visual
Basic avec lequel on peut coder en VBA.

Les fonctions réalisées peuvent aller de la simple fonction d’ajout d’enregistrement


(ouverture de formulaire, enregistrement, fermeture) au codage d’une fonction permettant de
générer un identifiant (code ou ID) unique. Cet identifiant est obtenu à partir des caractères de
plusieurs champs, avec une incrémentation en cas de redondance (pour toujours avoir un ID
unique).

J’ai utilisé cette solution à la place des champs de type « numerauto » avec lequel je
rencontrais des problèmes d’affichage.

10
Voici le code :

Seulement ce code ne fonctionne pas sans créer une nouvelle fonction que l’on place dans un
module sous VBA

Exemple d’utilisation : sur l’ajout client

Code de la fonction à insérer dans le module

Bien évidemment je n’ai pas créer ce code, mais je m’en suis inspiré pour créer une nouvelle
trame que j’ai adapté à mon utilisation à savoir récupérer les caractères de plusieurs champs pour
en générer un nième.

11
G. LES FORMULAIRES

J’ai utilisé les formulaires de deux manières :

La première qui est la plus courante est d’avoir un affichage agréable des données ou des champs
à remplir.

La deuxième consiste via les boutons de contrôle formulaire, d’ajouter un code VBA
« [Procédure événementielle] ».

Il y a plusieurs manières de procéder :

- Code :  via Visual Basic

- Expression  Expression logique

- Macro

Sur cet exemple de formulaire, les champs nom et prénom sont contrôlés par le bouton vérifier
(via un code vba) qui contrôle que le client existe bien avant toute réservation.

Le bouton « vérifier la disponibilité » lance une procédure qui compare les champs début-fin
séjour et type emplacement pour ensuite attribuer si il y a une disponibilité un numéro
d’emplacement.

Avec tous les essais que j’ai mené, j’ai trouvé que pour arriver à un même résultat il y avait
plusieurs moyens, sans parler du langage SQL avec lequel ont peut aussi programmer sous
Access.

12
3. C ON C L U S I O N

D’un point de vue général je pense avoir bien cerné mon sujet et les problématiques que cela
soulevait, mais je suis déçu des résultats obtenus d’autant que j’aurais voulu que l’application soit
viable afin d’être complété pour une utilisation pratique. Pour rappel je souhaitais utiliser ce
projet de base de données pour un projet familial de création de camping écologique au Maroc.

Peut-être que le projet était surestimé, mais la logique d’Access ne m’est pas apparu des plus
évidente. J’ai presque préféré passer par le codage sous VB, et même s’il y a un lexique important
à connaître la logique à suivre est beaucoup plus évidente..

Ceci étant je pense avoir parcourus un certain nombre des possibilités qu’offre Access, et la vue
de ce logiciel ne m’est plus étrangère. Je suis capable maintenant de comprendre la construction
d’une base, que ce soit les requêtes, les états, les formulaires, les tables ou leurs liaisons.

13

Vous aimerez peut-être aussi