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

IHM Discussion :

[AC-2007] créer un formulaire "complexe"


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [AC-2007] créer un formulaire "complexe"
    Bonjour

    Je suis débutante avec Access, j'ai commencé par trouver des cours et je sais à peu près modéliser mon projet, créer les tables, les relations, faire quelques requêtes en mode création/sql, et créer un formulaire simple, mais je n'arrive pas à faire un formulaire pour mon projet. J'ai du loupé une étape.

    J'ajoute que j'ai déjà consulté la FAQ, et fait de multiples recherches et j'ai déjà mis de côté plein de tutos pertinents pour la suite, mais je suis bloquée et j'ai du mal à formuler mon problème assez simplement.

    Le projet c'est de pouvoir noter les observations de la flore. Pour cela j'ai une table "Lot d'observations", qui regroupe une ou plusieurs observations. Un lot est associé à une date, un endroit, un observateur, un contexte. A une date/ un lieu/ un observateur/ un contexte peut être associé plusieurs lots d'observations. Les espèces observées sont ensuite liées par le biais d'une table de jonction, mais le problème de mon formulaire est encore en amont, et donc j'aimerais régler mon problème avant de passer à la suite.

    Pour mon exemple, je vais donc me limiter à ce schéma relationnel :

    LotObservations (IDLotObservation,#IDDate,#IDLieu,#IDContexte,#IDObservateur)
    Date (IDDate, DatePrecise, DateTextuelle)
    Lieu (IDLieu, Lieu, TypeLieu)
    Contexte (IDContexte, Contexte, TypeContexte)
    Observateur (IDObservateur, NomObservateur, PrenomObservateur)

    Les tables sont correctement liées avec intégrité référentielle.

    J'ai un premier formulaire "LotObservations" avec les champs suivants que l'on peut saisir :
    Date
    Date textuelle
    Lieu
    Type de lieu
    Contexte
    Type de contexte
    Nom de l'observateur
    Prénom de l'observateur

    Les sources des contrôles sont directement les champs des tables respectives.

    J'ai fais un premier test de mon formulaire, et en soi, ça fonctionne : si je saisie une date, un lieu, un contexte, un observateur, disons "Jean Dupont", les données sont correctement liées dans la table LotObservations, et elle apparaissent correctement dans les tables.

    Mais si notre ami "Jean Dupont" fait de nouvelles observations, je crée un nouvel enregistrement pour la table LotObservations, je saisie alors la date, le lieu, le contexte, et comme observateur "Jean Dupont". Et là, tout logiquement je l'avoue, Access me crée un nouvel enregistrement pour la table Observateur.

    Il y a donc deux enregistrements pour Jean Dupont dans la table Observateur. De la même manière, il peut y avoir plusieurs enregistrements pour la même date, le même lieu... et donc ça crée des doublons.

    En soi j'ai trouvé des solutions pour éviter de saisir des doublons :
    - mettre les champs NomObservateur et PrenomObservateur en clé primaire (en supposant qu'il n'y ait pas d'homonyme) mais cette solution ne pourrait pas s'adapter à la date par exemple, car la date peut aussi être renseignée de manière textuelle (exemple : "printemps 2012").
    - créer un index avec "oui sans doublon" et Access empêche alors de saisir deux fois le même groupe de valeurs, de sorte qu'il ne peut y avoir deux "Jean Dupont".

    Mais je n'arrive pas à associer plusieurs lots d'observations au même observateur (ou au même enregistrement de la table observateur) par le biais d'un formulaire. La structure des tables et des relations me le permet, mais je ne sais pas comment associé un lot d'observations à un enregistrement déjà existant d'une autre table, via un formulaire. Est-ce qu'il faut utiliser une requête? Et si oui, comment?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Eh oui, les nouvelles versions d'Access sont assez déroutantes avec les créations automatiques de formulaire. On ne sait plus quel contrôle fait quoi. J'imagine que tu as créé ton formulaire en sélectionnant les champs proposés, donc Access t'a laissé faire.
    Alors que par exemple, si tu as le champ #IDDate dans ta table observation ou #IDObservateur, dans ton formulaire de saisi, tu ne peux saisir et la date et la date textuelle. La valeur introduite ne peut être que #IDDate. Tu peux afficher les valeurs connexes (Date et Date textuelle) dans une liste déroulante.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour

    Pour ça ce n'est pas un problème. Je sais faire un formulaire et un sous-formulaire en mode création, et modifier la source des contrôles, et donc ajouter un contrôle indépendant si nécessaire.

    Comme je l'ai dis, en soi je peux saisir une date sans problème, si ensuite je vais dans les tables, les données sont correctement saisies, mais je ne peux pas associer plusieurs lots d'observations à un enregistrement de la date à partir de ce formulaire.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,
    Peut-on avoir la structure de ta base de données ( la fenêtre Relations) et le formulaire en question en mode création stp.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je suis en train de reprendre la structure pas à pas pour m'assurer que je n'ai rien oublié, c'est assez compliqué, j'ai plus de 40 tables.

    Mon problème concerne vraiment les formulaires en soi, je ne sais pas encore bien paramétrer toutes les propriétés, donc je suis en train de suivre des tutoriels.

    La solution semble être d'associer le contrôle à l'identifiant du champ (par exemple numéro de l'observateur), en affichant un contenu différent (par exemple nom et prénom de l'observateur).

    Mais cela empêche la saisie de nouveaux enregistrements et il faut alors ajouter un bouton pour ouvrir un autre formulaire si je veux saisir un nouvel enregistrement (mais je ne sais pas s'il est alors possible de "rafraîchir" la liste du formulaire précédent).

    J'aurais voulu éviter, dans certains cas, cette lourdeur en faisant en sorte que :
    si la valeur saisie existe
    alors l'identifiant de l'enregistrement en question est associé
    sinon, un nouvel enregistrement est créé

    Comme une boucle IF sous VB, mais je ne sais pas si c'est possible, je ne connais absolument rien au VBA.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Les formulaires ne sont que les présentations des données et permettent d'encoder les données. Leur construction est simplifiée quand le but de l'application est clair et que la structure des tables et des relations est stable et est conforme aux règles de gestion que l'on s'est imposé.
    C'est bien que tu t'es remise à réfléchir sur ta structure de données.
    Je n'ai pas compris les rôles et les relations entre tes champs lieu - Type de lieu, DatePrécise et dateTextuelle, Contexte et TypeDeContexte dans ton formulaire. Est-ce que ce sont des valeurs en parallèle dans la table lotobservation ou lieu va dépendre de type de lieu et ainsi de suite pour le Contexte ?

    En attendant de plus amples informations, tu trouveras ci-joint une base pour l'encodage des LotsObservations tel que je le comprends pour le moment.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok je vais regarder ça. Merci.

    Pour la localisation c'est justement un sujet dont j'ai complètement changé la modélisation. En général ce genre de choses est géré par SIG mais je ne veux pas en venir jusque là, je sais me servir de certains logiciels SIG mais je n'ai pas la licence et je pense que c'est trop compliqué à mettre en œuvre en lien avec une BDD.

    Je sais précisément les données que je dois pouvoir entrer et j'ai une idée assez précise pour certains formulaires, mais je revois effectivement tout, la structure et l'inventaire des formulaires qui seront nécessaires. J'ai eu l'occasion de discuter avec ma mère qui est susceptible d'utiliser la base elle aussi et j'ai vu un ami à elle informaticien qui connaît les BDD (mais pas Access), ça m'a permis de prendre du recul et de me donner des idées, j'ai notamment trouvé quelques référentiels qui sont déjà reconnus (pour les espèces, les milieux naturels).

Discussions similaires

  1. [MOSS 2007] Créer un formulaire
    Par olywyer dans le forum SharePoint
    Réponses: 1
    Dernier message: 07/10/2007, 20h21
  2. [VB.Net] "Impossible de créer le handle de fenêtre"
    Par cedric_g dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/04/2006, 12h49

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