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

Access Discussion :

Suppression d'une valeur dans un champ d'un sous formulaire après avoir modifié une autre valeur


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 26
    Points : 19
    Points
    19
    Par défaut Suppression d'une valeur dans un champ d'un sous formulaire après avoir modifié une autre valeur
    Bonjour,

    Sur cette capture d'écran :

    Nom : Capture.PNG
Affichages : 170
Taille : 30,1 Ko

    Je vais rentrer le nom et prénom d'une personne via la liste déroulante. Dans le premier sous-formulaire, je vais avoir le nom du bâtiment dans lequel la personne se situe ainsi que le local dans lequel elle se situe puis enfin son gisement (local, bureau...)
    Le deuxième sous formulaire permet d'avoir les personnes qui sont dans le même local que la personne sélectionnée via la liste déroulante. Ce formulaire me permet donc de modifier la localisation de la personne sélectionnée. Imaginons que "X" n'est plus dans le bâtiment "Y" mais dans le bâtiment "Z", je vais donc grâce à la liste déroulante lui affecter à un nouveau bâtiment et en l’occurrence à un nouveau local.
    Ce que je veux donc réaliser, c'est lorsqu'on change le bâtiment de la personne, il me vide automatiquement le gisement (numéro de local) dans laquelle se situe la personne afin que l’utilisateur puisse rentrer son nouveau numéro de local avec un msgbox qui s'afficherait, donnant pour consigne à l'utilisateur de rentrer le bon local, avec son libellé de gisement qui sera automatiquement associé au local car à un local est affecté son libellé de gisement.
    Je ne vois donc pas comment m'y prendre.
    Avez-vous une idée de comment je pourrai m'y prendre ?

    Je vous remercie de votre attention
    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Le plus simple est qu'il n'y ait qu'un seul déroulant dans le premier sous-formulaire qui permette de sélectionner directement le batiment - local - gisement.

    Autre solution, ajouter un bouton qui ouvre un formulaire contenant 3 déroulants (bâtiments, locaux, gisement) et un bouton confirmant le changement.

    A noter qu'il faudra sans doute vérifier qu'un même gisement n'est pas attribué à 2 personnes.

    Cordialement.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Oui, en regroupant les 3 champs pour réaliser une même liste déroulante ?
    Je vais essayer de faire cela.
    Et oui, pour le fait qu'un gisement ne soit pas attribué déjà à une personne. Et pour cela, c'est avec du code VBA qui serait le mieux pour réaliser ceci ?

    Je vous remercie de votre attention.
    Cordialement

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Si la table des gisements dispose d'un champ enregistrant l'identifiant de la personne qui l'occupe il ne sera pas possible d'avoir plus d'une personne par gisement ...et il faudra vérifier que ce gisement est libre avant de l'attribuer. En VBA, la fonction DCount permet de le savoir.

    A noter qu'il faut bien vérifier dès le départ qu'il n'y aura jamais un même poste occupé par 2 personnes, p.ex. à cause de mi-temps ou de remplacements temporaires. De cela va dépendre la façon de disposer les données.

    Cordialement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Oui en effet pour vérifier qu'un gisement va être libre. Je vais voir pour la fonction DCount comment elle s'utilise.
    Pour mon formulaire, je m'y suis pris d'une autre façon. Je vais le présenter comme cela, je pense que ça sera plus facile :
    Nom : Formulaire.PNG
Affichages : 106
Taille : 27,4 Ko
    J'ai donc ajouté 3 boutons, l'un me permettant de supprimer l'enregistrement en cours, l'autre me permettant de rajouter un nouvel enregistrement puis le dernier pour enregistrer. Néanmoins, quand on va supprimer l'enregistrement en cours, il va aussi me supprimer le nom et le prénom de la personne, chose que je ne souhaite pas et je ne sais pas comment le faire...
    Avez-vous une idée ?
    Autre chose, lorsque je clique sur le bouton "Supprimer enregistrement", il m'affiche cette erreur et je ne vois pas à quoi elle fait référence :
    Nom : Erreur_bouton_supp.PNG
Affichages : 104
Taille : 18,1 Ko
    Le saviez-vous ?
    Après je me lance dans peut être trop compliqué contrairement à ma première piste tout en haut de la discussion. Car je bloque et je suis un peu perdu.
    Boutons créés via l'aide de Access dans le menu "Création" puis "Contrôle" et bouton pour modifier un enregistrement.

    PS : voici ma table où sont situés mes gisements :
    Nom : T_Detail_batiment.PNG
Affichages : 105
Taille : 4,0 Ko
    Le "N°batiment" permet de faire la relation avec la table "Batiment" qui stock tous les bâtiments et donc d'avoir tous les bureaux d'un bâtiment.

    Je vous remercie de votre attention.

    Cordialement

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Si c'est pour affecter les personnes, il me semble qu'il serait plus simple d'avoir une seule liste reprenant les locaux et les personnes. Un exemple en attaché (supposant qu'il n'y a qu'une seule personne affectée à chaque bureau).

    Cordialement.
    Fichiers attachés Fichiers attachés

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Je regarde votre aide.
    Non il peut y avoir plusieurs personnes par bureau. Chaque bureaux a son nombre maximum de places de ne doit pas dépasser ce nombre.
    Par exemple, si je veux déplacer X dans le bureau Y, et que dans ce bureau Y il y a E et F et que le nombre de places dans ce bureau est limité à deux, on ne doit pas pouvoir ajouter cette personne à ce bureau. On ne peut ajouter une personne à un bureau que si il y a de la place dedans.
    En effet, dans le deuxième sous formulaire qu'on peut apercevoir en bas du formulaire, il indique les personnes dans le bureau de la personne qu'on a choisi via la liste déroulante du nom/prénom en haut du formulaire. Et en bas, nous pouvons apercevoir 2 zones de texte, celle de gauche qui nous donne le nombre de places théoriques, valeur obtenue via la table T_Detail_Batiment et la zone de texte à droite qui est un champ calculé, qui compte simplement le nombre de ligne qu'il y a dans le sous formulaire du bas pour pouvoir avoir le nombre de personne dans le gisement/bureau.
    Donc pour pouvoir ajouter une nouvelle personne au gisement qu'on souhaite, la valeur de droite doit être inférieure à celle de gauche.
    C'est tout ça que je ne vois pas comment faire.

    De ce qu'on m'a demandé de réaliser sur ce formulaire, l'idéal serait que ça prenne cette forme ci :

    Nom : formulaire.PNG
Affichages : 54
Taille : 29,2 Ko

    Avec des champs verrouillés pour les données "actuelles" du bâtiment, du gisement et du libellé. Et en dessous, avoir via des listes déroulantes les futures données. Avec le libellé du gisement qui s'affiche automatiquement après avoir rentré le bâtiment et le gisement car le libellé y est rattaché. Puis lorsque cela est fait, appuyer sur un bouton pour pouvoir mettre à jour ses données, mais cela fonctionnerait que si le nombre de places occupées dans le bureau est inférieure au nombre de places théoriques.
    J'ai essayé avec des requêtes de mise à jour, mais je n'ai pas réussi. :/

    Je vous remercie de votre attention.
    Cordialement

  8. #8
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Pas d'autre suggestion à ce que je vois. Je reste d'avis que le plus simple est d'avoir déjà toute la hiérarchie des bâtiments-locaux-gisements-postes préalablement complètement établie et de simplement donner les attributions de postes ensuite, certains postes pouvant être si nécessaire laissés vides.

    A noter que le "treeview" serait vraiment bien indiqué pour présenter cette hiérarchie.

    Cordialement.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Bien, je prends note. Si quelqu'un aurait une idée, je suis toujours preneur. Néanmoins, je suis en fin de stage, donc cela reste d'être compliqué.
    Je vous remercie tout de même pour votre attention et vos aides.

    Cordialement

Discussions similaires

  1. Réponses: 10
    Dernier message: 06/06/2019, 20h50
  2. [AC-2007] Valeur d'une requête dans un champ texte ou liste (Formulaire)
    Par Crachover dans le forum Access
    Réponses: 2
    Dernier message: 22/03/2014, 17h25
  3. Réponses: 2
    Dernier message: 20/07/2007, 11h23
  4. Réponses: 2
    Dernier message: 22/01/2007, 13h12
  5. Réponses: 8
    Dernier message: 31/07/2006, 12h52

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