Documentation technique sur l`application Access Sommaire

Transcription

Documentation technique sur l`application Access Sommaire
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
Documentation technique sur l’application Access
Sommaire
I – Construction de la base de données ------------------------------------------- 2
1. Modèle conceptuel de données ------------------------------------------------ 2
2. Modèle logique de données ----------------------------------------------------- 2
3. Table des relations ---------------------------------------------------------------- 3
II - Fonctionnalités particulières ----------------------------------------- 3
1. Formulaire Choix par commune------------------------------------------------- 3
Affichage des activités touristiques : --------------------------------------------------------------- 4
Supprimer un itinéraire (3 du formulaire « itinéraire ») ---------------------------------------- 5
Ajouter un itinéraire (4) -------------------------------------------------------------------------------- 6
2. Formulaire des itinéraires--------------------------------------------------------- 6
Sélection par département puis par commune ------------------------------------------------- 6
Afficher un nouveau formulaire en fonction d'un élément d'une liste : -------------------- 8
3. Formulaires modification arrêt et modification ligne ----------------------- 8
4. Formulaires modification arrêt et modification ligne ---------------------- 8
1
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
I – Construction de la base de données
1. Modèle conceptuel de données
2. Modèle logique de données
département (Num_dpt, nom_dpt)
commune (Code_INSEE, Nom_commune, Ref_dpt#)
hébergement (Num_heber, Nom, type, catégorie, prix, horaire_ouverture,
horaire_fermeture, coordonnées, description, tarif_min, tarif_max, Ref_INSEE#)
restaurant (Num_resto, nom, type, tarif_min, tarif_max, horaire_ouverture,
horaire_fermeture, coordonnées, description, Ref_INSEE#)
itinéraire (Num_itinéraire, nom, description)
activité_touristique (Num_touristique, nom_tour, déte_ouverture, date_fermeture,
horaire_ouverture, horaire_fermeture, tarif, coordonnées, CP, réduction_étudiant,
réduction_sénior, durée_visite, type_culturel_loisirs, description, Ref_INSEE#, Ref_activité#)
type_activité (Num_activité, type)
parking (Num_park, nom, nb_place, tarif, horaire_ouverture, horaire_fermeture, Ref_tour#)
arret (Num_arret, nom)
ligne (Num_ligne, type, num)
itinéraire_détails (Ref_touristique#, Ref_itinéraire#)
desserte (Ref_touristique#, Ref_arret#)
détails_ligne (Ref_ligne#, Ref_arret#)
2
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
3. Table des relations
II. Fonctionnalités particulières
1. Formulaire itinéraire
Somme du coût total de l’itinéraire : Dans la zone de texte « Cout_itinéraire » en pied de
page du sous-formulaire ItinéraireSF, la source contrôle est affectée de « =Somme([Tarif]) ».
Ainsi, aucun champs n’a été créé, ni aucune requête, pour ce calcul. Aucune mise à jour
n’est nécessaire. Elle s’effectue à chaque entrée sur la page
Somme de la durée totale de l’itinéraire : Dans la zone texte « Durée_totale », en pied de
page du sous-formulaire « ItinéraireSF », la source contrôle est affectée d’une formule :
=Ent(Somme([Durée_visite])*24)
&
Ent((Somme([Durée_visite])*24)))*60).
"h"
&
Ent(((Somme([Durée_visite])*24)-
Cette formule est inspirée de divers sites internet. Elle a ensuite été modifiée ( la plupart des
informations trouvées portaient sur des requêtes SQL ou sur d’autres formes de durée).
3
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
3
4
1
2
Affichage des activités touristiques :
Un affichage simple récupère le nom des activités (« Activité_tour_Nom » (1)). Il est donc
possible d’ajouter une nouvelle activité en fin de liste du sous-formulaire « ItinéraireSF ».
Mais il n’est cependant pas possible d’ajouter une activité qui existait déjà dans un itinéraire.
En effet, la clé est un NumAuto et aucune opération manuelle n’est donc permise dessus.
Une liste déroulante a donc été créée en dessous de la zone de texte
« Activité_tour_Nom »(2). Cette liste énumère toute la liste des « Num_tour» et « Nom » de
la table « Activité_tour ». En source contrôle, elle a « Ref_touristique ». Cette liste permet
d’ajouter à l’itinéraire une activité qui existait déjà dans la table « Activité_tour ». Elle peut
aussi permettre de changer une activité par une autre activité de la liste. Le lien, et ainsi, la
mise à jour avec la table de jointure « Itinéraire_détails » sont donc faits pour le champs
« Ref_touristique ». Il l’est aussi pour « Ref_itinéraire » qui est le champ fils du sousformulaire. Le champ père est Num-itinéraire.
Les listes déroulantes des formulaires « Modification des arrêts » et « Modification des
lignes » sont basées sur ce même principe. Dans le premier, les sites touristiques (donc
des champs de la table « Activité-tour ») peuvent être ajoutés à un arrêt de transport.
Mais c’est en fait « Ref_tour » de la table « Desserte » (la table de jointure) qui est
modifié. Pour le deuxième, on sélectionne la ligne (de la table « ligne »), mais c’est le
champ « Ref_ligne » qu’on modifie (de la table jointure « Détails-ligne »).
Les listes déroulantes
Les listes déroulantes créées dans ce programme ont deux objectifs.
• Le premier est simplement de sélectionner un enregistrement préexistant d’une table
ou dans un choix de valeurs définies (listes déroulantes créées à partir des clés
primaires pour les clés étrangères ou encore créées à partir de valeurs prédéfinies
comme pour le champ « type_culturel_loisirs»).
• Dans le deuxième cas, la liste permet d’afficher tous les champs liés à une clé. Dans
le cas de la liste « Réf_touristique » de la table « Itinéraire FP », ou « Activité
touristique » et « Ligne » des tables « Modification_arrêt » et « Modification_ligne »,
4
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
le lien à une clé implique une mise à jour automatique des informations liées. Dans le
cas d’une liste qui permet de sélectionner, dans un formulaire principal, les
informations à afficher dans un sous-formulaire (basé sur une autre table), une macro
est nécessaire. Elle consiste à atteindre la clé du champ père, qui en changeant met
à jour les informations du sous-formulaire (à partir du champ fils).
Les formulaires « commune_Resto » et « Hébergement par communes » fonctionnent de
cette manière.
Pour les cas de listes liées à des champs, aucune modification des listes et clé n’est
permise. Il est donc nécessaire de créer de nouveaux formulaires, créés spécialement pour
autoriser
les
modifications.
Ces
formulaires
sont
« DépartementsFP »,
« Modification_arretFP » (1) et « Modification_ligneFP » (2). Dans d’autres cas, on peut
ajouter ou supprimer des enregistrements à partir des requêtes « Select » ou « Delete ».
1
2
Supprimer un itinéraire (3 du formulaire « itinéraire ») : Le bouton « Supprimer »
exécute les requêtes « R Supprimer_Itinéraire » :
DELETE *
FROM Itinéraire
WHERE [Itinéraire].[Num_itinéraire]=Formulaires![Itinéraire FP]!Nom_communes;) et « R
Supprimer Itinéraire_détails » (DELETE *
FROM Itinéraire_détails
WHERE [Itinéraire_détails].[Ref_itinéraire]=Formulaires![Itinéraire FP]!Nom_communes;
Il est basé sur la macro « Formulaire Itinéraire, Bouton Supprimer Itinéraire ».
Ainsi, les itinéraires de la table de jointure « Itinéraire détails » et de la table « Itinéraire »
sont supprimés. Mais la liste déroulante affichait « Supprimé » à l’emplacement de l’ancien
itinéraire. La procédure « Actualiser » ne permettait pas de mettre le formulaire entièrement
à jour. Pour tout actualiser, la macro « Formulaire Itinéraire, Bouton Supprimer Itinéraire »
permet donc de fermer « ItinéraireFP » et de le rouvrir.
5
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
Ajouter un itinéraire (4) : Le bouton « Ajouter » exécute la requête « R Insert Itinéraire »
dont la commande sql se compose ainsi :
INSERT INTO Itinéraire ( Nom, Description )
VALUES (Formulaires![Itinéraire FP]!Insert, " ");
Ce bouton utilise une procédure événementielle (il a été créé à partir de l’assistant). Le
même problème d’actualisation s’est posé. Il est possible d’actualiser la liste déroulante par
une macro. Mais le Num_itinéraire, lui, ne se modifiait pas lorsque le nouvel itinéraire était
sélectionné dans la liste. Ainsi, le Sous-formulaire n’était pas vide lors de la sélection du
nouvel itinéraire.
La procédure VBA du bouton « Supprimer » a été copiée pour « Ajouter ». La rédaction est :
Dim stDocName As String
stDocName = "R Insert Itinéraire"
DoCmd.OpenQuery stDocName, acNormal, acEdit
DoCmd.Close
stDocName = "Itinéraire FP"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Cette opération a été répétée pour le formulaire « Modification_arretFP », avec le bouton
« Ajouter », qui ajoute un arrêt de transport.
2. Formulaire Choix par commune
Sélection par département puis par commune : Le formulaire ChoixParCommuneFP
est basé sur la liste des départements et des communes. La liste déroulante « Dept » (1) a
été créée sur la requête « R_Dpt_Communes », qui regroupe tous les départements afin de
ne les afficher qu’une fois dans la liste. La macro « Formulaire Activités, Liste déroulante dptcom, actualiser » permet de mettre à jour la liste déroulante « Code_INSEE ».
La liste « Code_INSEE » a pour origine source la requête « R_Dept_commune (2)».
6
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
2
1
2
3
Un problème s’est posé. Lorsque la 1ère et la 3ème colonnes étaient réduites à 0cm pour
l’affichage, tout fonctionnait, mais une boîte de dialogue s’ouvrait lors de la fermeture du
formulaire,
indiquant
qu’aucune
valeur
n’était
définie
pour
[Formulaires] ![ChoixParCommunes] ![Dept]. De plus, la liste déroulante ne pouvait se créer
à partir de l ‘assistant car la requête « R_Dept_commune » ne pouvait pas être sélectionnée
dans l’assistant. Il disait que certaines valeurs n’étaient pas définies.
En revanche, lorsque les trois colonnes étaient affichées, le problème ne se posait plus. La
liste déroulante affiche donc les codes INSEE, et une zone texte, à côté, inscrit le nom de la
commune.
7
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
Toutes les zones de texte et listes déroulantes du projet sont mises à jour à l’ouverture
du formulaire, à partir de la clé affichée.
Afficher un nouveau formulaire en fonction d'un élément d'une liste :
Les transports en commun et les parkings peuvent s'afficher en fonction du site sélectionné.
Pour cela, les formulaires " Desserte_activitésFP " et " ParkingsFP " ont été créés avec
l'assistant. Une jointure a été effectuée au moment de la création, lorsque l'assistant a
proposé " Ouvrir le formulaire et trouver des informations spécifiques à afficher ". Un filtre est
ainsi activé à l'ouverture des nouveaux formulaires.
Cette opération a été répétée pour l’affichage des restaurants et des hébergements à
partir du formulaire « ChoixParCommune ». Pour ces derniers exemples, l’affichage
implique qu’un seul bouton est créé.
Pour l’exemple des transports et parkings, l’affichage dans le formulaire d’une liste
d’activités touristiques implique qu’une sélection d’un site doit être faite pour sélectionner,
puis afficher dans un nouveau formulaire, les arrêts et lignes disponibles. Une solution
était de sélectionner une activité par le sélecteur, puis de cliquer sur un bouton qui
affichait les formulaires « Desserte_activités » et « Parkings » selon le site sélectionné.
La solution choisie, car plus évidente pour un utilisateur, est l’affichage d’un bouton pour
chaque ligne de la liste d’activités (3).
Boutons
Les boutons du projet retournent en général au menu ou à la liste des activités par
commune. Dans la plupart des cas, la feuille se ferme pour ouvrir un nouveau formulaire.
Cette opération aurait pu se faire par les macros. Mais avec l’utilisation de l’assistant et donc
la possibilité de n’effectuer qu’une action au clic sur le bouton, cette fonctionnalité a été
ajouté en VBA : « DoCmd.Close ». L’assistant était utilisé en particulier car il permet de créer
un lien de manière automatique entre deux clés pour l’ouverture du nouveau formulaire. On
peut ainsi récupérer la clé d’un enregistrement pour créer un filtre à l’ouverture du nouveau
formulaire.
Info bulle : Des textes d’info-bulle ont été ajoutés pour chaque bouton, et quelques autres
endroits spécifiques.
3. Formulaires Modification_arret et Modification_ligne
Dans les formulaires « Modification_arret » et « Modification_ligne », le bouton retour
retourne au formulaire « ChoixParCommune ». Il aurait été aussi possible de revenir
exactement à la page précédente (Formulaire « desserte_activités »). Mais la page
« ChoixParCommune » n’a pas été fermé dans le cas de l’affichage des moyens d’accès.
Ainsi, il est possible de modifier un arrêt, ou une ligne, et de revenir à la commune où l’on
était. Ceci paraît logique dans le sens où l’ajout d’une ligne ou d’un arrêt est susceptible
d’agir sur plusieurs activités d’une même ville.
4. Formulaire Somme_tarifFP et « affichage_somme_tarifFP »
Une fois les valeurs minimum et maximum sélectionnées dans les listes, le bouton « Page
suivante » ouvre un nouveau formulaire basé sur une requête. Cette requête
« RsommeTarif » est définie de la manière suivante :
8
Projet Access Master SIGMA
Peraldi Pascal / Burges Chloé
A l’intérieur du formulaire « affichage_somme_tarifFP », une autre requête :
« SommeDeTarif », permet un calcul basé dans le formulaire principal, et utilisant le sousformulaire. Il permet de calculer le coût total de l’itinéraire. Coût qui était précédemment
indiqué d’une autre manière (précèdemment expliqué) dans le formulaire « ItinéraireSF »
(zone de calcul et champs dans le sous-formulaire). Deux méthodes ont donc été utilisées
pour représenter ce calcul.
9

Documents pareils