Afficher dernière valeur d'un champs

Fermé
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 - 2 nov. 2021 à 13:27
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 12 nov. 2021 à 11:37
Bonjour,

J'aimerai savoir comment afficher la dernière valeur d'un champs ici dans mon ce sera le champs 'kilométrage après location" pour l'afficher dans un nouvel enregistrement mais qu'il soit placé dans "kilométrage avant location " dans ce formulaire.



Tous sa par rapport à un critère qui est ici le champs "Id Voiture".

Penser vous que cela soit possible ?

3 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
2 nov. 2021 à 14:52
bonjour,
il serait surtout utile d'expliquer d'abord quels sont les champs de la table.
également, éviter de mélanger les champs enregistrés dans une table et les contrôles affichés dans un formulaire.
même si ces contrôles sont alimentés par, et/ou alimentent des champs.
peut-être donner un exemple.
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021
Modifié le 2 nov. 2021 à 15:27
C'est compliqué en faite ils sont tiré de plusieurs table (ces champs dont je parle ).
Voici ma table "kilométrage" : qui va regrouper mes champs "Id Réservation " "kilométrage avant location " et "kilométrage après location".


Et pour ce qui et de mon champs voiture il est extrait de ma table "Réservation", les autres information sont seulement stocké dans le générateur de requête du formulaire "Retour"(y compris le champs "voiture".

car je voulais que dans mon formulaire retour je n'ai qu'à sélectionner mon "id de réservation" et tous les autres champs ce remplisse automatiquement par rapport au réservation qui sont saisie elle dans le formulaire réservation. à part les champs " "kilométrage avant location " et "kilométrage après location" qui sont les deux seul champs à saisir.





Y aurait -il un moyen de programmer ce "filtre "dans le générateur de requête ou je suis obliger de le créer dans ma table kilométrage ?

Je voudrais récupérer la dernière valeurs de mon champs "kilomètrage avant location" pour le transférer dans le champs "kilométrage après location" (seulement lors d'un nouvel enregistrement) en appliquant comme filtre mon champs "voiture ".
Par exemple je viens de récupérer une voiture et lorsque que je saisirez "l'id de réservation" il ne me restera plus qu'a entrer la valeur du "kilomètrage après location" car la valeur du "kilomètrage avant location"aura était automatiquement rempli par la valeur du "kilomètrage après location" de la facture précédente de la voiture 'n' d’où le fait que je veut utiliser l'id de la voiture (qui est ici la plaque d'immatriculation ) pour filtrer ma requête .
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021
2 nov. 2021 à 15:39
il me semble que les tables ne sont pas bien conçues.
une table client, ok
une table voiture, ok
pourquoi trois tables réservation, retour, km? une table "contrat" ne suffit pas?
il me semble que "km fin de contrat" suffit, si "km début de contrat" peut être retrouvé dans le contrat précédent. et "km parcourus" sera calculé, ne doit pas être un champ.
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
2 nov. 2021 à 21:33
ok dans ma table réservations j'ai ajour "Km après contrat" et "Km avant contrat".




Mais je voudrais que le champs "km parcourus " ( que je n'ai pas ajouté) que son résultat soit ensuite calculé avec un champs d'une autre table, le champs "km supp" de la table "modèle". (soit [km parcouru]*[km supp])
seulement si les valeur d'un des champs "Nombre jour Limité" & "Nombre de mois Limité" & "Nombre de semaine Limité" qui sont de la table réservation sont supérieurà zéro.




Parce que il y a deux type de contrat ceux en ilimité (où le kilométrage et ilimité et donc que je n'ai pas besoin que ce calcul ce fasse) et des contrat en limité (où là si j'ai besoin de ce calcul ).
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021
3 nov. 2021 à 04:21
Merci en mettant c'est champs là dans ma table réservation sa à était simple pour répondre à la problématique juste au dessus j'ai creer un champs calculer dans la requete, j'y ai mis cette formule et sa fonctionne : cout total km: VraiFaux([Nombre de mois Limité] Ou [Nombre de semaine Limité] Ou [Nombre jour Limité]>0;[Km Parcourue pendant contrat]*[Supp Km];0)

Mais je reviens sur ce que je voulais faire au départ que mon champs [Km avant contrat] soit égale à mon champs [Km après contrat ] par rapport au dernier enregistrement pour le véhicule (n).

tu aurais une iddée s'il te plait d'une fonction qui pourrait mettre utile pour ce cas ...merci encore
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
3 nov. 2021 à 08:27
Veux-tu vraiment avoir un champ [Km avant contrat]?

N'est-il pas plus simple d'utiliser, via une requête, la valeur de [Km après contrat ] du dernier enregistrement pour le véhicule?
Ou, plus simple, le maximum de toutes les valeurs de [Km après contrat ] pour ce véhicule?
Ce maximum peut-être obtenu via une requête, ou en utilisant la fonction dmax().
dmax, ainsi que les autres fonctions "domaine", sont spécifiques à Access. Si tu veux progresser en SQL, j'éviterais donc ces fonctions.

SI tu persistes à avoir une champ [Km avant contrat], il faut, au moment de créer l'enregistrement (via un formulaire ou via du code), utiliser la méthode ci-dessus pour obtenir la valeur à enregistrer dans ce champ.
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
3 nov. 2021 à 08:50
D'accord mais comment effectuer par la suite la différence de km qui à était utiliser et par la suite comment lui multiplié à cette valeur si les champs Nombre de mois Limité] Ou [Nombre de semaine Limité] Ou [Nombre jour Limité] sont supérieur à zéro ?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021
3 nov. 2021 à 10:47
supposons une table nommée resa, avec des champs voiture, datedebut, kmfin
cette requête (non testée) donne, pour chaque resa, le plus grand kmfin antérieur pour la même voiture:
select r1.voiture, r1.datedebut, r1.kmfin, max(r2.kmfin) as kmdebut
from resa as r1, resa as r2
where r1.voiture = r2.voiture
and r1.datedebut > r2.datedebut
group by r1.voiture, r1.datedebut, r1.kmfin
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
3 nov. 2021 à 11:15
Merci je vais l'essayer.
0
luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021 > luc731 Messages postés 22 Date d'inscription mardi 26 octobre 2021 Statut Membre Dernière intervention 12 novembre 2021
5 nov. 2021 à 11:06
bonjour j'ai mis la requête sql dans une requête comme ce qui suit



Sa fonctionne mais comment faire pour l'insérer dans mon formulaire ?? parce qu'il me marque ce message d'erreur :"Instruction SQL non exécutée jointures externes ambiguës. Pour forcer l'ordre d'exécution d'une des jointures en premier, créez une requête distincte qui exécute la première jointure, puis insérez cette requête dans votre instruction SQL. (Erreur 3258)"
0
Bonjour,
La réponse à ta question me parait extrêmement simple.
Tu as une table "Véhicule" avec un ID-Véhicule
Tu as une table "ContratDeLocation" avec un "ID-ContratDeLocation" qui reprend l'ID-Véhicule, parce que chaque contrat est lié à un seul véhicule.
Il te suffit donc d'une requête qui associe chaque véhicule à tous les contrats dont il a été l'objet, et puis d'une expression de type SQL DerDom() (ou DLast() ) qui reprenne le dernier kilométrage enregistré, "KmFinDeContat" pour le véhicule à louer et le placer en kilométrage initial du nouveau contrat dans ton formulaire d'enregistrement des contrats.
Bon courage
0