IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modélisation Discussion :

Relations, sous formulaires et calcul de date


Sujet :

Modélisation

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Relations, sous formulaires et calcul de date
    Bonjour à tous !

    Voici ce que j’ai déjà créer.

    Tables

    Tb Companies
    Company - Address 1 - Address 2 - Zip Code…
    Clé primaire sur company

    Tb Contacts
    ID Contact – Company - Title - First Name - Last Name - Function…
    Clé primaire sur ID Contact

    Tb Visits
    ID Visit – Company - Place of visit - Date of Visit - Agence Impliquée (je suis de l’agence de France, mais il y a Espagne, Allemagne, Chine…) – Objet du RDV – Suites à Données – Date des suites à données
    Clé primaire sur ID Visit

    Tb Agence Impliquée
    ID Agency - Agence Impliquée
    Clé primaire sur ID Agency

    Relations
    Tb Companies - Company…Company - Tb Contacts
    Tb Companies - Company…Company - Tb Visits
    Tb Agence Impliquée - ID Agency… Agence Impliquée - Tb Visits (relation impossible à faire : « pas d’index unique »)


    Je fais une base de données client.
    Au final, je dois avoir :

    - Un formulaire avec les parties companies, contacts et visits imprimable sur du A4. Je souhaite que sur une fiche je puisse voir pour la même entreprise tous les contacts et toutes les visites qui ont eu lieu.
    L’insertion en mode design de sous-formulaire me donne ce résultat mais y’aurait-il un moyen plus esthétique ? Car ça me donne une table toute moche et mon formulaire doit être présentable.

    - les trois formulaires companies, contacts & visits qui serviront à entrer les données. Quand un commercial rentre d’un rdv, je souhaite qu’il ouvre access, saisisse juste les infos concernant le rdv et qu’access fasse seul le lien avec la companie (et du coup les contacts aussi). D’où mon champ « company » dans ma table « visits »

    - Un bouton ou une alerte quand la date du champ « Date des suites à données » est arrivée à échéance (donc création d’une requête avec formule de calcul ?)
    Du coup, un état ou quelque chose comme ça pour imprimer la liste des échéance dépassées.


    Pour le moment, mon problème est de savoir si mes tables sont créer au mieux (en cas d’évolution dans les années à venir) et si mes relations sont ok ?
    Si je crée un champ ID Contact et ID Visit dans ma table « companies » je ne peux pas les définir autonumber. Si je le laisse texte j’ai un problème d’index quand je crée ma relation.

    J’espère que c’est clair.
    Merci 1000 fois pour les précieux conseils que vous pourriez m’apporter.
    Un détail, je suis débutante.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Pour savoir si la base est bonne, il faut également connaitre les cardinalité.
    Par exemple tu as un "objet" company et un contact

    Un contact peut etre dans une company.
    Dans ta table contact tu as "company" c'est donc une clé étrangère.
    Tu ne peux faire ceci que si un contact ne peut etre lié qu'a une seule company. Si un contact peut être lié a plusieurs company il faudrait un table "faitPartie" par exemple qui contient la clé de "contact" et celle de "company".

    Je ne sais pas si je suis très clair lol...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Good morning !

    Désolé pour le délais : journée très très chargée hier.

    Lol, ça commence : les cardinalités ? Là, déjà au 1er terme jme perds.

    Dans une même companie je peux avoir plusieurs contact et plusieurs visites. Donc, si je comprend bien, je dois créer une nouvelle table contenant les champs clé primaire soit : company, ID contact & ID Visit (précision : sur cette nouvelle table je dois définir une clé primaire ?)

    Donc ensuite, dans mes relations, j'ai supprimé celles que j'avais et fait ceci (du moins essayé) :
    1- Tb Companies - Company (txt)…Company (txt) - Tb FaitPartie
    2- Tb Visits - ID Visit (n°auto)…ID Visit (txt) - Tb FaitPartie
    3- Tb Contact - ID Contact (n°auto)… ID Contact(txt) - Tb FaitPartie

    error pour les pts 2 et 3 : ce n'est pas les même type de données (n° auto et txt) mais ds ma table "FaitPartie" il n'est possible de créer qu'un seul n° auto !!!)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 26
    Points
    26
    Par défaut
    Cardinalité ca fait peur comme mot mais c'est pas très compliqué.
    En fait au niveau conception (avant de penser aux tables) tu as deux sortes de choses. Les entités (un objet) comme une compagnie, une personne, une visite etc. Et des relations comme FairePartie qui va lier deux entités.

    Lorsque tu fais ce schéma il te faut te poser la question des cardinalité. C'est à dire le nombre de liaisons possible pour chaque relation.

    Ainsi par exemple on peut avoir une chose simple:
    Une entité "Personne" et une "Compagnie" liées par la relation "TravailDans"

    Disons qu'une personne peut travailler dans une seule compagnie (ce qui sur le long terme n'est pas vrai en général mais c'est un exemple). Donc la cardinalité max de "Personne" vers "Compagnie" par la relation "TravailDans" sera de 1.
    La compagnie elle peut comporter plusieurs personne. Donc la cardinalité max de Compagnie vers Personne par la relation TravailDans sera superieure à 1 et de nombre inconnu (disons donc "n")

    J'espère être clair jusque la.
    Après lorsque tu vas faire des tables, dans un premier temps chaque entité devient une table avec sa clé primaire.
    Pour les relations ca depend. Si les cardinalités des deux cotés de la relation sont à "n" il te faudra une table FairePartie avec les clés primaires de chaque entité en jeu. La clé primaire de cette nouvelle table sera les deux ensemble.

    Par contre dans notre exemple on a dit (faussement) qu'une personne ne peut travailler que dans une compagnie. On a donc une des cardinalité max à 1. Dans ce cas, pas de table FairePartie. On peut directement ajouter dans la table Personne, l'identifiant de la compagnie puisqu'on sait qu'elle sera unique.

    Sinon là je suis au boulot donc pas trop le temps de vérifier tes tables mais je peux faire ça ce soir ou ce week end si tu en a encore besoin d'ici là.
    N'hésite pas si je n'ai pas été clair

    ++

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Pascalouh merci de ton temps ! c'est vraiment très clair.

    Je pourrais tester ceci sur ma base que dans la soirée (trop de dossiers urgent au boulot). Je te tiendrais au courant.

    Très bon weekend.

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous !

    Ok c'est génial.

    Là, j'ai mes tables, mes relations et j'ai créer mes formulaires avec bouton.

    Maintenant, je passe au formulaire qui m'affichent toutes mes infos sur la même page. Celui qui me servira pour imprimer. Et là je bloque.

    Si j'insère des subforms, c'est pas présentable. Y'a t'il une autre méthode ou un moyen d'améliorer la mise en page ?

    Merci et très bon lundi !

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour tout le monde !

    Même si j'avais finit par penser que j'avais cherché partout, j'ai trouvé une solution qui répond enfin à un de mes problème. Pour ceux qui pourrait en avoir besoins: j'ai créer une table "Datedujour" puis une requête avec
    Company
    Date d'actions (cest à partir de ce champ qu'access déterminera qui sont arrivé à échéance).
    et Alerte, où comme critère j'ai saisi :
    ("SELECT (Format([Datedujour],"dd/mm/yyyy")) FROM matable WHERE (((Users.Datedujour)>DateSerial(Year(Now())-3,Month(Now()),Day(Now()))))")

    Mais j'ai une erreur "syntax invalide". Je suis vraiment proche, mais j'ai besoins d'un dernier coup de main.

    Merci d'avance.

Discussions similaires

  1. Calcul durée entre 2 dates sous formulaire
    Par Rakaps dans le forum IHM
    Réponses: 2
    Dernier message: 24/03/2015, 18h54
  2. [AC-2010] Sous Formulaire en fonction de date
    Par Sph1nxXx dans le forum IHM
    Réponses: 7
    Dernier message: 09/08/2011, 16h19
  3. formulaire et calculs de date
    Par Poor_Beginner dans le forum IHM
    Réponses: 12
    Dernier message: 17/01/2007, 23h54
  4. Pb champ calcule dans sous formulaire
    Par Brial dans le forum Access
    Réponses: 6
    Dernier message: 12/11/2005, 18h33
  5. Réponses: 2
    Dernier message: 28/09/2005, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo