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 :

Zone de texte dans l'en-tête d'un formulaire [AC-2013]


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut Zone de texte dans l'en-tête d'un formulaire
    Bonjour,

    Une question toute simple, dans un formulaire de recherche multicritères en mode continu, je voudrais mettre une zone de texte dans l'en-tête du formulaire afin d'y stocker une date globale.

    J'ai une liste de clients ayant payé ou pas des factures, et je voudrais pouvoir stocker quelque part la date ou j'ai vérifié les impayés pour la dernière fois. L'en-tête du formulaire me parait bien pour ça.

    A quoi rattacher cette zone de texte ? Si je crée un champ dans une table, il sera présent pour chaque enregistrement, et si je mets la zone en indépendant bien entendu je ne peux rien enregistrer dedans.

    Comment faire ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    On crée la persistance de ce genre d'info dans une table Parametres.

    Voici une structure exemple :

    Id, NuméroAuto
    NomParam, Texte
    ValeurParam, Texte
    DescriptionParam, Texte

    Puis on crée une fonction lecture et une creation/ecriture pour faciliter les échanges.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Bonjour Loufab,

    Tu veux dire qu'il faut coder une fonction pour faire ça ?

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Non pas forcément mais ça t'aidera à gérer tes paramètres issus de la table, qui elle, est obligatoire.

    Moi je procède comme ça, ainsi lorsque j'envoi un paramètre dans ma table je le fais en utilisation une fonction (qui crée si elle n'existe pas), de même que lorsque je la lis.

    ça facilite grandement la gestion des paramètres.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    D'accord, mais je ne comprends toujours pas très bien ce que je dois faire.

    Peux-tu m'expliquer en quelques lignes les étapes de ce que je dois faire pour avoir ce champ date Loufab, si possible sans code ?

    Je te remercie

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    D'abord créer la table TParam avec les colonnes indiquées précédemment.
    Ensuite créer la zone de texte dans l'en-tête avec ce nom : txtDateImpaye

    Avec le minimum de code :
    Dans la source de la zone de texte mettre une expression pour chercher dans la table, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =dlookup("ValeurParam";"TParam";"NomParam='VerifImpaye")
    Enfin dans l'événement Après MAJ de la zone de texte, il faut mettre les instructions d'écriture.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if isnull(me.txtDateImpaye) then
       'n'existe pas >> crée
       currentdb.execute "INSERT INTO TParam (NomParam, ValeurParam, DescriptionParam) VALUES ('VerifImpaye','" & me.txtDateImpaye & '",'Date vérification impayé');"
    else
       'existe >> remplace
       currentdb.execute "UPDATE TParam SET ValeurParam = '" & Me.txtDateImpaye & "' WHERE NomParam='VerifImpaye';"
    endif
    Approximativement c'est le mécanisme.

    Sans code on peut tenter un sous-form contenant la date que tu places dans l'en-tête, à tester si c'est possible.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Merci Loufab, j'essaye de regarder ça dans le week end.

    J'ai essayé de placer un sous-formulaire dans l’en-tête, ce n'est pas possible en mode continu.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Hum alors voila j'ai essayé ta proposition Loufab, il doit y a voir un problème car dans la zone de texte créée dans l’en-tête du formulaire il y a #Erreur.

    J'ai vérifié et revérifié de ne pas m’être trompé, j'ai juste inversé un ' avec un " sur la ligne 4 de ton code car il y avait je crois une inversion mais ça ne fonctionne quand même pas.

    Si tu as une idée du pourquoi de la chose...

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    La 4 est correcte par contre le dlookup() n'est pas correct. Il manque un ' vers la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =dlookup("ValeurParam";"TParam";"NomParam='VerifImpaye'")
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Ah oui en effet, OK pour le ' dans le Dlookup.

    Je n'ai plus le #Erreur dans le contrôle mais je ne peux rien y mettre, ça met : le contrôle ne peut être modifié ; il est lié à l'expression =RechDom("ValeurParam";"TParam";"NomParam='VerifImpaye'")

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Donc il faut rajouter un bouton pour faire la mise à jour en utilisant un inputbox()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim nouvelleValeur as string
    nouvelleValeur = inputbox(...
     
    if isnull(me.txtDateImpaye) then
       'n'existe pas >> crée
       currentdb.execute "INSERT INTO TParam (NomParam, ValeurParam, DescriptionParam) VALUES ('VerifImpaye','" & nouvelleValeur  & '",'Date vérification impayé');"
    else
       'existe >> remplace
       currentdb.execute "UPDATE TParam SET ValeurParam = '" & nouvelleValeur & "' WHERE NomParam='VerifImpaye';"
    endif
    Voir l'aide pour la fonction inputbox()

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    J'ai rajouté l'inputbox pour remplir le champ et ça fonctionne.

    Cependant, j'ai un soucis, si par erreur l'inputbox est validée vide (après avoir cliqué sur OK sans rien taper, ou sur annuler), je peux saisir ce que je veux ensuite, la zone de texte reste toujours vide.

    Est-ce qu'il y aurait moyen d'arranger ça ?

    Je vois que, chaque fois que je fais une saisie dans l'inputbox cela ajoute un enregistrement dans la table. Comme je n'ai pas besoin de garder l'historique, est ce qu'il serait possible de n'avoir qu'un seul et unique enregistrement dans la table TParam, qu'on écraserait a chaque nouvelle saisie dans l'inputbox ?

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Avec cet algo ça devrait aller mieux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dim nouvelleValeur as string
    nouvelleValeur = inputbox(...
     
    if len(nouvelleValeur)=0 then exit sub  'traitement de la non saisie.
     
    if isnull(dlookup("ValeurParam","TParam","NomParam='VerifImpaye'")) then  'pas de valeur dans la table
       'n'existe pas >> crée
       currentdb.execute "INSERT INTO TParam (NomParam, ValeurParam, DescriptionParam) VALUES ('VerifImpaye','" & nouvelleValeur  & '",'Date vérification impayé');"
    else
       'existe >> remplace
       currentdb.execute "UPDATE TParam SET ValeurParam = '" & nouvelleValeur & "' WHERE NomParam='VerifImpaye';"
    endif
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Voila tout fonctionne parfaitement

    Je te remercie Loufab

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

Discussions similaires

  1. [WD-2007] Zone de texte dans un en-tête avec texte+image
    Par Minisucre971 dans le forum Word
    Réponses: 5
    Dernier message: 21/02/2013, 16h51
  2. Réponses: 5
    Dernier message: 04/10/2005, 22h42
  3. Récupérer un valeur de zone de texte dans OnClick
    Par navis84 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 21/09/2005, 15h13
  4. Zone de texte dans une image
    Par sanna dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 18/03/2005, 22h15
  5. Réponses: 2
    Dernier message: 07/12/2004, 13h09

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