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

VBA Access Discussion :

Valeur par défaut dans une zone de texte


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut Valeur par défaut dans une zone de texte
    Bonjour,

    Le titre résume très mal ce que je veux faire mais mon explication demande plusieurs lignes.

    Je m'explique.

    J'ai créé une zone de texte dont sa valeur est liée à bon nombre de requêtes.

    Il faut ainsi que cette zone de texte soit tout le temps remplie d'une valeur.

    Cette zone nécessite d'être changée 2 fois par an environ.

    Pour cela, j'ai mis ma valeur actuelle par défaut dans les propriétés de cette zone. Le problème est que quand l'utilisateur (autre que moi et qui ne connaît rien à Access) va changer cette valeur de la zone de texte directement sur mon formulaire, elle va être effective le temps qu'il reste connecté. En effet, à la prochaine connexion, cette valeur retrouvera sa valeur par défaut que j'avais indiquée dans les propriétés.

    Donc ce que je souhaite, c'est que quand l'utilisateur change la valeur de la zone de texte directement sur mon formulaire, cette valeur devienne par défaut jusqu'à la prochaine modification et ainsi de suite...

    Merci de vos idées par avance.

  2. #2
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour un petit truc que j'utilise
    dans mon form je crais un champ indepandant on l'appelera(ChampValeurDefault)Dans sa proprite valeur par default on metra la valeur que tu souhaite donner a ton champ ensuite dans la valeur par defaut de ton champ tu mettra =[ChampValeurDefault]
    et ensuite dans la propriete mise a jour de ton champ tu met se code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.MonChamp
    Bon courrage

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Je n'ai pas trop compris.
    D'après tes explications, je créé 2 zones de texte dont l'une est ma zone de texte et l'autre est la zone de texte intermédiaire (ChampValeurDefault).
    Dans la zone de texte intermédiaire, je met ma valeur, dans la propriété par défaut, que je souhaite attribuer à ma zone de texte.
    Ensuite, dans ma zone de texte, je met =[ChampValeurDefault], dans la propriété par défaut.
    Pour finir, dans ma zone de texte toujours, je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.MonChamp
    dans la propriété mise à jour.

    Cela permet-il bien que dès lors que l'utilisateur change la valeur de ma zone de texte, elle prenne cette valeur définitivement jusqu'à une prochaine modification?

    Je vais donc tester demain si cela correspond à mes attentes.

    Merci en tout cas, je te tiens au courant.

  4. #4
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    J'ai refait l'essai avant de t' envoyer la reponse pour moi cela fonctionne tres bien(Je ne dit pas qu'il n'ya pas d'autre solution)
    Tien moi au courrant j'aime bien suivre les sujets au qu'elle je repond

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Re,

    J'ai testé ta solution mais je n'ai pas réussi à l'exploiter.

    Tout d'abord, je ne vois pas où se trouve la propriété mise à jour de ma zone de texte.

    A part les Avant MAJ ou Après MAJ, je ne vois pas de quoi tu parles en parlant de propriété mise à jour donc je ne sais pas où mettre ce code:

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.MonChamp
    Néanmoins, en testant ceci (à tout hasard) sur Avant MAJ ou Après MAJ, voici le message d'erreur:

    "Microsoft Access ne peut pas trouver la macro 'Me'
    La macro (ou son groupe de macros) n'existe pas ou la macro est nouvelle mais n'a pas été enregistrée.
    Remarquez que lorsque vous entrez la syntaxe nomgroupemacro.nommacro dans un argument, vous devez spécifier le nom sous lequel le groupe de macros de la macro a été enregistré la dernière fois."

    Voilà, en espérant que tu m'éclaires à nouveau.

    A+.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    Tu dois ajouter le code VBA suivant pour l'évènement Après MAJ de ton contrôle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ChampValeurDefault_AfterUpdate()
      Me.ChampValeurDefault.DefaultValue = Me.MonChamp
    End Sub
    Me est un raccourci sur l'objet actif. Dans ce cas, c'est le formulaire

  7. #7
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Désolé du manque de précision
    mais NOODLE02 a très bien répondu a ta question

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    T'as pas à être désolé... c'est plutôt moi avec mon manque de savoir...
    Je retesterais cela demain et je vous tiens au courant.
    Merci.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Toujours le même message d'erreur cité plus haut...

  10. #10
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    A tu mi le nom reel de tes champ s'est a dir
    ChampValeurDefault = au nom du champ que tu a creer pour garder en memoir la valeur par defaut
    MonChamp = nom du champ qui contient ta valeur dans ta table

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    Si tu as encore ce message d'erreur, c'est que l'usage de Me est inadéquat.

    Je rappelle que Me est le raccourci sur l'objet actif. Dans ton cas, sur le contrôle qui doit être mis à jour.
    Donc pour ajouter le code que je t'ai proposé plus haut, tu dois pour commencer ouvrir la fenêtre des propriétés du contrôle.
    Dans cette fenêtre tu as un onglet qui s'appelle "Evenement". Tu sélectionnes cet onglet.
    Dedans, tu te positionne sur la rubrique Après MAJ (Après mise à jour)
    En te positionnant dessus, un bouton [...] apparaît à droite.
    Tu cliques sur ce bouton.
    Il ouvre une fenêtre dans laquelle tu sélectionnes "Générateur de code".
    A ce moment là, tu as accès à l'éditeur de code VBA. (qui a déjà préparé la déclaration de fonction à ta place.
    Il suffit alors d'y ajouter le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.ChampValeurDefault
    Ceci bien sûr si ton contrôle s'appelle "ChampValeurDefault"

    Normalement ça devrait fonctionner sans pépins.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    C'est exactement ce que j'ai fait... mot pour mot...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    Alors, le meilleure manière de t'en sortir, c'est de mettre un point d'arrêt au début de la routine et de tracer ligne par ligne. Dans la fenêtre "Espion" tu ajoutes l'objet me et Me.ChampValeurDefault et tu examines ce qu'il y a dedans.
    Tu peux aussi examiner le contenu de l'objet err qui te donnera des précisions si une erreur a été provoquée.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Re,

    J'ai l'impression qu'il y a confusion entre les champs.

    Tantôt vous me dites:

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.ChampValeurDefault
    Tantôt:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ChampValeurDefault.DefaultValue = Me.MonChamp
    J'ai l'impression qu'il y a un malentendu général sur les 2 zones de texte en question.

    Pour faciliter les choses, appelons "MonChamp" la zone de texte que l'utilisateur va modifier et "Champint" la zone de texte intermédiaire qui ne sert qu'à stocker la dernière valeur prise par "MonChamp".

    J'aimerais alors avoir une dernière explication détaillée et je vous en remercie d'avance. Si je n'arrive pas, je laisse tomber.

    Sachez que j'ai tout testé soit ça me met le message d'erreur que j'ai cité au dessus soit ça ne fonctionne pas, c'est-à-dire que ça ne prend en aucun cas, la dernière valeur mais toujours la valeur par défaut.

    Cdt.

  15. #15
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Je te joint un exemple tu comprendra peut etre mieu

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    C'est pourtant exactement ça que je veux... J'ai examiné ton code etc... je pense avoir fait ça, je verrais ça demain mais c'est pourtant ça que je veux.
    Je te remercie beaucoup.

  17. #17
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    De rien
    et bonne chance

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    J'ai le malheur de vous annoncer que ça ne fonctionne toujours pas.

    Mais ça évolue. Je m'explique...

    "ChampValeurDefault" a pour valeur par défaut au départ: 10 donc la valeur de "MonChamp" est de 10 aussi, ce qui est normal.

    L'utilisateur change la valeur de "MonChamp" dans la zone de texte "MonChamp" (par exemple: 45), la valeur "ChampValeurDefault" de ma zone de texte "ChampValeurDefault" devient celle de "MonChamp" (c'est-à-dire 45, jusque là tout va bien...). J'ai même vérifié les propriétés de "ChampValeurDefault" et sa valeur par défaut a changé et est devenu 45! On peut dire alors que tous les manipulations fonctionnent...

    Néanmoins, quand je ferme mon formulaire et que je l'ouvre aussitôt... Qu'est-ce que j'observe?
    La valeur par défaut de "ChampValeurdefault" est redevenu la valeur par défaut que j'avais mis au tout départ, c'est-à-dire: 10 et donc la valeur de "MonChamp" aussi.

    Voilà, donc je n'arrive toujours pas à résoudre mon problème! Mais les messages d'erreur n'apparaissent plus et c'est déjà une étape.

    Merci d'avance.

  19. #19
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour apres tes remarques j'ai modifier le systeme

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  2. Valeur par défaut d'une zone de texte
    Par yveslens dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2008, 09h41
  3. valeur par défaut d'une zone de texte
    Par remi59 dans le forum IHM
    Réponses: 2
    Dernier message: 08/02/2007, 12h01
  4. Réponses: 6
    Dernier message: 14/02/2006, 20h53
  5. Sélection valeur par défaut dans une zone de liste
    Par Cécile154 dans le forum IHM
    Réponses: 2
    Dernier message: 15/02/2005, 18h20

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