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 :

Remplissage de champ sur clic


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 74
    Points
    74
    Par défaut Remplissage de champ sur clic
    Bonjour tout le monde,

    Je fais appel à vous car l'un de mes collègues m'a proposé d'ajouter une amélioration à la base de donnée dont nous disposons.
    Je me tourne donc vers vous pour demander de l'aide car cette demande sors de mes capacités.

    Je dispose d'un formulaire où j'entre les données concernant les dépannages que l'on traite :
    Nom : Dep.png
Affichages : 117
Taille : 59,9 Ko

    Sur ce formulaire est présent un bouton qui me permet d'afficher un état qui comprend la liste des prix journalier des différents véhicule dont nous disposons pour la location. Voici l'état :
    Nom : Tarif_Dep.png
Affichages : 121
Taille : 51,6 Ko

    J'aimerais savoir si l'ont peut faire en sorte que lorsque l'on clic sur le prix d'un de ces véhicules, le champs Prix Journalier , sur le formulaire précedent, se complète avec le prix sur lequel on aura cliqué.

    Merci d'avance pour vos avis et aide.

    Jbsushi

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    Bonjour,

    Oui c'est possible avec du code événementiel au niveau du contrôle qui affiche le prix dans l'état.

    Cependant, ne serait-il pas plus immédiat de remplacer le contrôle zone de texte (Prix journalier) de ton formulaire, par une zone de liste modifiable contenant tous les prix ?
    Comme pour dépannage et région.

    A+

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    En effet ta solution d'utiliser une liste déroulante est plus "immédiate" cependant je la trouve moins ergonomique c'est pourquoi je préfère me tourner vers cette "liste".

    Saurais tu me guider un peu plus sur la démarche à suivre pour mettre en place le code événementiel ou pourrais tu m'orienter vers un tutoriel ? ^^

    Merci

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    RE,

    Dans le code événementiel du bouton "Prix journalier" je mettrai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cmdBoutonPrixJournalier_Click()
    DoCmd.OpenReport "Nom de l'état", acViewReport, , , acDialog, Me.Name
    End Sub
    Ce code ouvre l'état en mode d'affichage état et fournit en argument le nom du formulaire.


    Dans l'état on gère l'événement sur clic du contrôle prix journalier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub NomCtlPrixJournalierEtat_Click()
    Dim sFormName As String
     
    ' On récupère le contenu de OpenArgs
    sFormName = Nz(Me.OpenArgs, "")
    ' S'il est vide on quitte la procédure
    If Len(sFormName) = 0 Then Exit Sub
     
    ' Si le formulaire est chargé
    If Application.CurrentProject.AllForms(sFormName).IsLoaded Then
       ' Si le formulaire n'est pas en mode création
       If Forms(sFormName).CurrentView <> 0 Then
          ' On copie le prix
          Forms(sFormName).NomCtlPrixJournalierFormulaire = Me.NomCtlPrixJournalierEtat      
          ' On ferme l'état
          DoCmd.Close acReport, Me.Name, acSavePrompt
       End If
    End If
    End Sub
    NomCtlPrixJournalierEtat est le nom du contrôle "prix journalier" dans l'état.
    NomCtlPrixJournalierFormulaire est le nom du contrôle "prix journalier" dans le formulaire.
    (le nom d'un contrôle se trouve dans l'onglet «Autres» de la feuille des propriétés)

    A+

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    Après quelques essais je rencontre toujours la même erreur :
    Nom : DepPrb.png
Affichages : 100
Taille : 152,0 Ko

    Et voici le code que tu m'as montré après modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Option Compare Database
    Private Sub Prix_journa_Click(Cancel As Integer)
    Dim sFormName As String
     
    ' On récupère le contenu de OpenArgs
    sFormName = Nz(Me.OpenArgs, "")
    ' S'il est vide on quitte la procédure
    If Len(sFormName) = 0 Then Exit Sub
     
    ' Si le formulaire est chargé
    If Application.CurrentProject.AllForms(sFormName).IsLoaded Then
       ' Si le formulaire n'est pas en mode création
       If Forms(sFormName).CurrentView <> 0 Then
          ' On copie le prix
          Forms(sFormName).txtPrixJ = Me.Prix_journa
          ' On ferme l'état
          DoCmd.Close acReport, Me.Name, acSavePrompt
       End If
    End If
    End Sub
    Si tu as une idée d'où pourrait venir le problème :p
    Merci d'avance

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    La procédure événementielle Prix_journa_Click n'a pas la bonne signature pour l'événement «sur clic».
    L'argument Cancel As Integer est de trop.

    Je crois que ce n'est que ça.

    A+

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    En effet je n'ai plus de message d'erreur, cependant cela ne marche toujours pas :/

    J'ai essayé d'utiliser un Doubleclic, et ça me renvoie sur une erreur similaire à celle que j'avais précédemment.

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 765
    Points
    7 765
    Par défaut
    Pour repartir sur des bases saines :

    1) Ouvre l'état en mode création.
    Va dans le module de code de ton état, et supprime tout le code sauf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Option Compare Database
    Ensuite, Menu principal de VB > Débogage > Compiler «Nom du projet»

    2) Création de la procédure événementielle.
    Sélectionner le contrôle et afficher la feuille de propriétés.
    En face du nom de l'événement (sur clic) sélectionner [Procédure événementielle].
    Cliquer sur le petit bouton à droite contenant trois points [...]

    Ce bouton réalise deux choses.
    Il crée le corps de la procédure événementielle s'il ne la trouve pas, et il connecte l'événement à cette procédure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Prix_journa_Click()
     
    End Sub
    Pour vérifier que l'évenement se déclenche coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Prix_journa_Click()"
    Sauve l'état et ferme le.

    3) Tests de l'événement
    Ouvres ton formulaire, clique sur le bouton qui ouvre l'état.
    Clique sur le contrôle Prix_journa pour voir si la boîte de message s'affiche bien.

    4) Si test 3) positif.
    Remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Prix_journa_Click()
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim sFormName As String
     
    ' On récupère le contenu de OpenArgs
    sFormName = Nz(Me.OpenArgs, "")
    ' S'il est vide on quitte la procédure
    If Len(sFormName) = 0 Then Exit Sub
     
    ' Si le formulaire est chargé
    If Application.CurrentProject.AllForms(sFormName).IsLoaded Then
       ' Si le formulaire n'est pas en mode création
       If Forms(sFormName).CurrentView <> 0 Then
          ' On copie le prix
          Forms(sFormName).txtPrixJ = Me.Prix_journa
          ' On ferme l'état
          DoCmd.Close acReport, Me.Name, acSavePrompt
       End If
    End If
    5) Test du code collé.
    Si rien ne se passe il est fort probable sFormName est vide parce que l'état n'a pas été ouvert avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "Nom de l'état", acViewReport, , , acDialog, Me.Name
    A+

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2013
    Messages : 117
    Points : 74
    Points
    74
    Par défaut
    Tout d'abord merci pour ta réponse.
    Tu consacre du temps à ma demande, je ne peux qu'apprécier.

    SURTOUT QUE CA MARCHE EN PLUS !

    Encore Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TinyMCE] effacer un champ sur clic
    Par laurentSc dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 21/09/2011, 21h37
  2. champ découvert sur clic
    Par albertlyon dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/08/2007, 15h27
  3. verrouiller les champs par clic sur un bouton
    Par rasta girl dans le forum IHM
    Réponses: 10
    Dernier message: 19/06/2007, 16h10
  4. [MySQL] Affichage auto de champs par clic sur liste déroulante
    Par Mister Shell dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/12/2006, 12h08
  5. Réponses: 47
    Dernier message: 09/06/2006, 17h16

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