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 :

récupération d'une valeur.


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut récupération d'une valeur.
    Bonjour,
    J'essaye de développer une petite application sous Access afin de gérer, entre autre, une flotte de véhicules.
    Afin de "contrôler" les consommations de carburant, j'ai créé une table à cet effet dans laquelle j'ai les champs
    - Id_enregitrement (numauto)
    - Immatriculation (liè à un champ d'une autre table reprennant les caractéristiques de mes véhicules dont l'immatriculation)
    - Date de la prise de carburant
    - Quantité de carburant prise
    - Le prix payé
    - Kilomètrage = Kilomètrage au moment de la prise carburant
    - Kilomètrage_dernier = le kilomètrage au moment du "plein" précédent.

    J'aimerais que ce dernier champ se remplisse automatiquement avec la valeur du champ "kilomètrage" correspondant au plein précédent pour ce véhicule.

    J'ai cherché sur le site et j'ai vu qu'il me faudrait passer par une procédure événementielle qui me dirait d'aller chercher la valeur qui aurait été préalablement stockée dans une variable.
    La démarche, je la comprends, mais comment faire afin que l'info corresponde bien au véhicule souhaité ? En effet, l'enregistrement précédent n'est pas spécialement celui correspondant au véhicule pour lequel j'encode.
    Merci d'avance pour vos suggestions.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je pense que la fonction de domaine DMax devrait t'intérresser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DMax("[Kilometrage]";"[NomDeLaTable]";"[Immatriculation]='" & numImmat & "'")
    Elle devrait te donner la valeur maximum du champ kilométrage de ta table, dont l'immatriculation est celle que tu veux.
    Remplace numImmat par par exemple la valeur d'une liste déroulante ou d'une saisie où tu mets l'immatriculation.

    Starec

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    RE, ça c'est du rapide !

    J'avais pensé à utiliser cette notion de max mais sans savoir comment procéder... je débute et pas évident de s'y retrouver dans la littérature.. D'autant qu'on veut souvent mettre la charrue avant les boeufs...

    Merci pour cette piste.

    Entre temps, je regardais la présentation concernant le language SQL appliqué à ACCESS.

    Pourrait on utiliser la commande INSERT INTO VALUES WHERE ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Cela dépend comment tu procédes pour faire tes saisies, est-ce que ton formulaire est lié à la table, est-ce qu'il est indépendant ?

    Le code SQL dont tu me parles est pour ajouter un enregistrement à une table, si ton formulaire est lié à la table c'est inutile.

    Starec

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Le formulaire est lié.

    Je vais donc me focaliser sur ta solution.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Un plus, comment sélectionnes-tu ta plaques d'immatriculation ?

    Si c'est par saisie manuelle, tu peux essayer de mettre sur l'évènement AfterUpdate de ta textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.lechamparemplir = DMax(....)
    Starec

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Re

    La saisie de l'immatriculation se fait manuellement.

    Dans la fonction Dmax; comment lui dire de prendre cette valeur là ?

    Ca paraît si simple et pourtant, je bloque...

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Immatriculation_vehicule_AfterUpdate()
    Me.KM_debut = DMax("[KM_fin]", "[UTILISATION_VEHICULE]", "Immatriculation_vehicule='XIM 633'")
    End Sub
    Est-ce le genre de code qu'il faut mettre ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour

    D'abord prendre à mettre les balises codes.

    Essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Immatriculation_vehicule_AfterUpdate()
    Me.KM_debut = DMax("[KM_fin]", "[UTILISATION_VEHICULE]", "Immatriculation_vehicule='" & me.Immatriculation_vehicule.value & "'")
    End Sub
    Pour récupérer la valeur que tu as saisi.

    De plus au lieu de dire :
    Est-ce le genre de code qu'il faut mettre
    il faut mieux le tester, et voir l'effet, bug, etc...

    Starec

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Voilà, finalement ça fonctionne !
    J'ai eu quelques soucis avec des accents et la dénomination des champs.
    Ce que je ne comprends pas :
    Au départ, j'avais mis des noms de champs avec accent tels que "Immatriculation_véhicule", "km_début"...
    Après avoir lu quelques threads, j'ai renommé ces différents champs afin de supprimer les caractères accentués qui semblent pouvoir créer des problèmes, Est-ce exact ?
    Ce que je n'explique pas c'est que quand j'ai transcris le code que tu avais donné il a fallu, pour que ca fonctionne, que je mette le nom des champs comme initialement créés ! comme ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Immatriculation_véhicule_AfterUpdate()
    Me.KM_début = DMax("[KM_fin]", "[UTILISATION_VEHICULE]", "Immatriculation_vehicule='" & Me.Immatriculation_véhicule.Value & "'")
    End Sub
    PS : Existe-t-il un référentiel reprennant toutes les fonctions disponibles et leurs caracéristiques ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par skeeler
    Voilà, finalement ça fonctionne !
    J'ai eu quelques soucis avec des accents et la dénomination des champs.
    Ce que je ne comprends pas :
    Au départ, j'avais mis des noms de champs avec accent tels que "Immatriculation_véhicule", "km_début"...
    Après avoir lu quelques threads, j'ai renommé ces différents champs afin de supprimer les caractères accentués qui semblent pouvoir créer des problèmes, Est-ce exact ?
    Il faut mieux eviter (et dans certains langages c'est prohibé), de manière général ne pas mettre d'accents aux champs, nom de contrôles, variables.

    Ce que je n'explique pas c'est que quand j'ai écris le code il a fallu que je mette le nom des champs comme initialement créés ! comme ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Immatriculation_véhicule_AfterUpdate()
    Me.KM_début = DMax("[KM_fin]", "[UTILISATION_VEHICULE]", "Immatriculation_vehicule='" & Me.Immatriculation_véhicule.Value & "'")
    End Sub
    Heu j'ai pas tout compris

    Starec

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 20
    Points : 12
    Points
    12
    Par défaut
    Bonsoir

    J'explique : si tu regardes le début de la procédure " Me.KM_début = DMax(...) Il y a bien un accent sur "Km_début" qui est le nom d'un de mes champs et qui a pourtant été renommé KM_debut .... De même pour "immatriculation_véhicule.value"

    Est-ce plus clair ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Heu,

    Tes noms sont les noms des contrôles où tu trouves, et où tu va chercher tes données.

    Reécréer les carrément.

    Starec

Discussions similaires

  1. [glade] Récupération d'une valeur dans une combo
    Par Poutchjay dans le forum GTK+ avec Python
    Réponses: 1
    Dernier message: 23/01/2006, 14h59
  2. Réponses: 6
    Dernier message: 05/01/2006, 16h37
  3. [XSL] récupération d'une valeur
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/12/2005, 15h58
  4. Réponses: 2
    Dernier message: 03/11/2005, 15h03
  5. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49

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