Bonjour,
Je suis newbie en access (j'ai des restes scolaire) mais en général je m'en sors plutôt bien avec l'apprentissage des logiciels en autodidacte. Mais ici, je sèche.
Je suis en train de mettre en place une DB pour gérer les moteurs diesels d'un flotte de locomotives.
J'ai une table principale "infos moteurs" qui donne les caractéristiques des moteurs (marque, type, S/N, ainsi que le numéro de loco sur lequel il est installé).
J'ai des tables secondaires ou je souhaite enregistrer des informations relatives aux entretiens.
Pour l'exemple ici, je prends la table "Heures moteurs" qui contient à nouveau les infos N° de loco et n° de série et le nombre d'heure du diesel.
L'utilisateur doit d'abord choisi dans le formulaire "par numero de loco", le n° de la locomotive dans une liste déroulante. en cliquant sur le bouton suivant, un autre formulaire "Menu par numéro de loco" s'ouvre avec en en-tete une sous-requête qui affiche les champs de la table "infos moteurs" pour cette loco.
Dans ce formulaire il y a en plus une série de boutons dont "introduire un nouveau relevé d'heures" qui ouvre un nouveau formulaire pour introduire les heures et ainsi compléter la table "Heures moteurs".
Problème n°1 : la sous requête dans le formulaire "Menu par numéro de loco" n'affiche des valeurs que si le formulaire "par numéro de loco" avec la liste déroulante reste ouvert. Or je souhaiterais pouvoir le fermer. Comment faire pour que la valeur choisie dans la liste déroulante reste enregistrée meme si le formulaire est fermé ?
Problème n°2 : Je souhaite que le formulaire "introduire un nouveau relevé d'heures" soit un formulaire pour un nouvel enregistrement dans lequel les champs de la table "Heures moteurs" apparaissent préremplis avec les valeurs du dernier enregistrement pour la loco choisie dans la liste déroulante du formulaire "par numéro de loco". J'ai essayé en donnant dans les propriétés source contrôle la valeur issue de la requête utilisée avant mais cela ne fonctionne pas. Il me met #Nom? ... J'ai beau chercher la raison pour laquelle cela ne fonctionne pas mais je ne trouve pas. En VBA, je ne vois pas trop comment faire non plus. J'ai fait quelques essais avec recordset mais sans succès.
Votre aide serait fortement appréciée car je m'arrache les cheveux.
Partager