Access - base de données pour agence de voyages

Pti champi

New Member
Bonjour,

Je dois faire une Base de données sur access. Cela concerne une agence de voyages. La BD devra me permettre au final de saisir automatiquement les nouveaux clients, les inscriptions pour un voyage, de calculer le montant prélevé si un client annule son voyage. Voici ce que j’ai déjà fait, pouvez-vous me dire si je suis bien partie ou si je dois modifier quelque chose avant de continuer :
4 tables :
- Clients [Code du client, nom, prénom, adresse1, adresse2, code postal, ville, téléphone]
- Voyages : différents voyages sont proposés aux clients [Code du voyage, pays, période, date de départ, date de retour, prix par personne]
Inscription [numéro de l’inscription, date d’inscription, date d’annulation (si le client annule son voyage, cela permettra de calculer le montant qu'il devra quand même payer en fonction de la date à lauqelle il annule), versement (carte bleue, chèque…), code du client, code du voyage]
- Ligne inscription [nombre de personnes, numéro de l’inscription, code du voyage]

C'est bon pour l'instant ?

Après je voudrais faire un formulaire pour saisir les inscriptions déjà existantes. Et au final, je voudrais insérer des macros pour que lorsqu'on rentre dans la base de données, on a plus qu'à appyer sur un bouton pour entrer une inscription...(mais les macros je sais pas faire, quelqu'un pourrait m'expliquer?) :biggrin:

Merci
 

Ys

New Member
Bonjour et bienvenue sur le forum :wink2:

Pour ta BDD j'ai un peu de mal à visualiser comme ça.. tu pourrais peut être nous mettre en ligne ton fichier (à l'aide de www.cjoint.com) ou attendre une réponse de quelqu'un de plus expérimenté.
Pour les macros, rien de plus simple! Je te met un petit lien qui pourras t'aider pour leurs réalisations: http://www.er.uqam.ca/merlin/xw999998/fr/faccm.htm

Je te souhaite bon courage!
 

vestale974

Well-Known Member
Salut,
Facile pourtant.
Normal Ys, il y a une table de trop.

Les clients peuvent s'inscrire à un ou +sieurs voyages
Pour un voyage, il y a au moins un client ou +sieurs clients

CLIENT (Code_Cli, Nom_Cli, Prénom_Cli, Ads1_Cli, Ads2_Cli, CP_Cli, Ville_Cli, Tél_Cli)
VOYAGE (Code_Voyage, Pays, Période, Date_départ, Date_retour, Prix_par_personne)
INSCRIPTION (Code_Cli, Code_Voyage, Date_inscription, Nb_personnes, Date_annulation, Mode_règlement)

Pour le formulaire de saisie des inscription, il faut utiliser un formulaire/sous-formulaire. Avec l'assistant de formulaire, il est possible de le réaliser sans trop de difficultés.

Pour les macros, utiliser l'action "ouvrir formulaire" et dans les propriétés de l'action choisir le nom du formulaire à ouvrir, etc.
voir les modes opératoires sur www.petitkar.com
Où bien allez dans le menu "outils", commande "démarrage" et sélectionner le formulaire que l'on souhaite ouvrir automatiquement à l'ouverture de la BDD.
@+
 

Ys

New Member
vestale974 link=topic=11147.msg99193#msg99193 date=1136388728 a dit:
Salut,
Facile pourtant.
Normal Ys, il y a une table de trop.

Ha oui mais moi je dépale dans la semoule si je suis pas devant la table elle-même :chessy:
 

Pti champi

New Member
J'ai essayé comme tu as dit Vestale.
J'ai fais mon formulaire avec mon sous-formulaire, mais je quand veux entrer les inscriptions, il y a un petit souci :
Par exemple, Pour les voyages en Chine il y a trois possibilités
Code du voyage Pays Période Date de départ Date de retour Prix
CHINA Chine Automne 26/09/05 15/10/05 2910 ¤
CHINE Chine Eté 11/07/05 30/07/05 3018 ¤
CHINP Chine Printemps 04/04/05 23/04/05 2729 ¤

un client veut aller en Chine, je tape donc dans code du voyage : CHINA, mais ce que je voudrais c'est que les autres champs s'affichent automatiquement. Donc ce que je voudrais c'est que dès que j'ai tapé CHINA la période, la date de départ, la date de retour et le prix s'affichent.
Je pense que ça devrait être possible de faire ce genre de chose.
Merci pour votre aide.
 

vestale974

Well-Known Member
Salut,
Vous avez du vous tromper dans la table INSCRIPTION.
Le MLD que j'ai proposé est cohérent et le MFD fonctionne.
Assurez-vous que dans la table INSCRIPTION, vous avez bien les clés composées Code_Cli et Code_Voyage et non pas Code_Cli et Pays. :excl:

Pour le formulaire/sous-formulaire :
- créez une requête avec vos 3 tables.
- insérez dans la grille d'interrogation, tous les champs de la table CLIENT et de la table INSCRIPTION, puis tous les champs sauf Code_Voyage de la table VOYAGE.
- enregistrez la requête
- lancez la procédure de création d'un formulaire à l'aide de l'assistant, sélectionnez votre requête puis sélectionnez tous les champs disponibles. Allez jusqu'à la fin de la procédure de l'assistant.
@+
 

Pti champi

New Member
J’ai saisit ma première inscription. Jusque là tout s’est bien passé, lorsque j’ai inscrit le code du client, tous les renseignements le concernant sont apparût automatiquement, et pareil pour le code voyage. Mais lorsque j’appuie sur la flèche du formulaire pour insérer une autre inscription, les coordonnées du premier client et son inscription reste à l’écran, et lorsque je veux modifier le code client, ce message apparaît : Modifications non effectuées : risque de doublons dans les champs index, clé principale ou relation interdisant les doublons. Modifier les données des champs contenant des doublons, enlevez ou redéfinissez l’index pour permettre les doublons et recommencez. Que se passe-t-il ? :embarassed:
 

vestale974

Well-Known Member
Salut,

Attention, car la table INSCRIPTION est une pseudo-entité c'est-à-dire une association de structure non hierarchique.
Parce que et tu auras remarqué, tes cardinalités sont de type (0,n) ou (1,n).
Cela siginifie qu'un client peut s'inscrire à un voyage ou à +sieurs voyages et que pour un voyage il y a un client d'inscrit ou +sieurs. Mais cela siginifie aussi, dans ce cas de figure, qu'un client ne peut s'inscrire plusieurs fois à un même voyage.

Dans ce que tu signales, soit tu as pour un même client saisie dans le sous-formulaire 2 fois le même voyage, et dans ce cas il y a le risque de doublons, soit pour le deuxième client le Code_Cli affiché dans le formulaire principal est différent du Code_Cli affiché dans le sous-formulaire.
@+
 

graziella

New Member
Bonjour,

Est-ce qu'il ne s'agit pas plutot d'une propriété de mise à jour. Pour débuguer, dans le formulaire de saisie, il suffit de faire apparaitre le champs identifiant du formulaire principal et celui de son sous formulaire (tu dois avoir deux identifiants différents). En comparant les valeurs à chaque nouvelle saisie, tu verras si tu crée bien un nouvel enregistrement là où il faut (c'est à dire pour une nouvelle saisie de client tu modifie bien ta clé client et ta clé voyage, d'après ton message d'erreur tu as l'air de ne creer un enregistrement que dans une seule table au lieu des deux). J'ai peur de ne pas avoir été très claire, désolée...
 

Ca peut vous intéresser