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 :

Modification de la valeur (numérique) par défaut d'un champ : '#Nom ?' [AC-2002]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut Modification de la valeur (numérique) par défaut d'un champ : '#Nom ?'
    Bonjour !

    Dans une application, je souhaite permettre à l'utilisateur de modifier les valeurs par défaut de 2 champs du formulaire "Analyse Std". Je précise que ces valeurs sont des réels doubles affichés au format pourcentage.

    J'ai donc prévu un petit formulaire "Paramétrages" qui :
    1- rapatrie les valeurs dans 2 champs indépendants à l'ouverture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        DoCmd.OpenForm "Analyse Std", acDesign, , , , acHidden
        Me.Param_EcartA.Value = CDbl(Replace(Forms("Analyse Std").EcartA.DefaultValue, ".", ","))
        Me.Param_EcartB.Value = CDbl(Replace(Forms("Analyse Std").EcartB.DefaultValue, ".", ","))
        DoCmd.Close acForm, "Analyse Std"
    2- permet à l'utilisateur de changer celles-ci à sa convenance
    3- enregistre les valeurs saisies comme nouvelles valeurs par défaut dans le formulaire "Analyse Std"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        DoCmd.OpenForm "Analyse Std", acDesign, , , , acHidden
        Forms("Analyse Std").EcartA.DefaultValue = Me.Param_EcartA.Value
        Forms("Analyse Std").EcartB.DefaultValue = Me.Param_EcartB.Value
        DoCmd.Save acForm, "Analyse Std"
        DoCmd.Close acForm, "Analyse Std"
        MsgBox "Les nouveaux paramétrages ont été sauvegardés avec succès !", vbInformation, "Paramètres mis à jour"

    Le problème c'est qu'après cette procédure, le formulaire "Analyse Std" m'affiche #Nom ? dans les champs concernés.
    Pourtant lorsque je vais consulter en mode édition les valeurs par défaut des champs, les données ont bien été reprises... et si je resaisis exactement les mêmes infos, les champs s'affichent à nouveau correctement...

    Je mets une base exemple en pièce jointe pour être plus clair...
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonsoir,

    Je suis interloqué devant le replace(...,".",",")
    Je pense que 2 numériques dans access sont dans le même standard régional !

    J'écrirais donc plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Param_EcartA = Forms("Analyse Std").EcartA.DefaultValue

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Bonsoir,

    Je suis interloqué devant le replace(...,".",",")
    Je pense que 2 numériques dans access sont dans le même standard régional !

    J'écrirais donc plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Param_EcartA = Forms("Analyse Std").EcartA.DefaultValue
    Malheureusement cette syntaxe est indispensable... (tu peux essayer toi même avec la base d'exemple du 1er message)

    --------------

    Pour revenir au problème : c'est bien le Forms("Analyse Std").EcartA.DefaultValue = Me.Param_EcartA.Value qu'il faut modifier.

    Quand on sollicite l'aide d'Access au sujet de la propriété Valeur par défaut d'un champ on lit :
    "Propriété DefaultValue : Spécifie une valeur String saisie automatiquement dans un champ[...]"
    Ce ne serait cette histoire de String qui pose problème ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    Ce que je ne comprends pas c'est que si j'essaie d'afficher la valeur par défaut de l'un des champs de Analyse Std, il me renvoie une valeur avec un point à la place de la virgule ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Forms("Analyse Std").EcartA.DefaultValue
    C'est pour ça que j'utilise le Replace() et le CDbl() pour pouvoir reconvertir la valeur au format numérique (et l'afficher sous la forme d'un pourcentage)...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 175
    Points : 129
    Points
    129
    Par défaut
    J'ai finalement réussi à obtenir le fonctionnement désiré !

    Comme je n'arrivais pas à faire comprendre à Access que je plaçais une valeur numérique dans la propriété DefaultValue des champs de Analyse Std, j'ai remplacé le contenu par "=CDbl('mavaleur')"

    Du coup j'ai également dû construire une formule "capilotractée" pour récupérer une valeur numérique (affichée au format pourcentage) dans les champs de mon formulaire paramétrage...

    Voici les lignes principales :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms("Analyse Std").EcartA.DefaultValue = "=CDbl('" & Me.Param_EcartA.Value & "')"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Param_EcartA.Value = CDbl(Mid(Forms("Analyse Std").EcartA.DefaultValue, InStr(1, Forms("Analyse Std").EcartA.DefaultValue, "'", vbTextCompare) + 1, InStr(InStr(1, Forms("Analyse Std").EcartA.DefaultValue, "'", vbTextCompare) + 1, Forms("Analyse Std").EcartA.DefaultValue, "'", vbTextCompare) - InStr(1, Forms("Analyse Std").EcartA.DefaultValue, "'", vbTextCompare) - 1))
    Je poste également la version corrigée de ma base exemple pour ceux que ça intéresse.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Clavier numérique par défaut pour un champ texte
    Par caparenlive59 dans le forum Android
    Réponses: 3
    Dernier message: 14/02/2012, 14h44
  2. Réponses: 9
    Dernier message: 01/03/2011, 16h20
  3. Mettre la valeur O par défaut dans un champs NULL
    Par Loumi_69 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 13/05/2008, 11h53
  4. [WD11] Valeur par défaut d'un champ numérique
    Par Loko dans le forum WinDev
    Réponses: 1
    Dernier message: 02/01/2008, 18h46
  5. Valeur par défaut d'un champ date
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2004, 12h48

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