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

Access Discussion :

Comportement étrange d'Access sur valeur booléenne en fonction de la langue du PC (lost in translation)


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut Comportement étrange d'Access sur valeur booléenne en fonction de la langue du PC (lost in translation)
    Bonjour à tous,

    Voici mon problème (assez agaçant au demeurant).

    J'ai un formulaire utilisé par N utisateurs. Ce formulaire est peuplé en vba à partir de données provenant de plusieurs tables et les modifications sont également enregistrées dans les tables correspondantes à l'aide de vba.

    Certaines de ces données sont de type booléen et renvoient soit True soit False.

    Ce résultat est visible pour les utilisateurs finaux soit via des cases à cocher soit via des menus déroulants (ne contenant que 2 choix donc).

    Pour les utilisateurs dont la langue du PC est l'anglais (cas le plus fréquent dans mon entreprise) pas de souci, les cases sont pré-cochées et les menus déroulants pré-remplis.

    En revanche, quand la langue est le Français (cas rare certes mais malheureusement pas nul), les éléménts booléens du formulaire ne sont pas remplis. Pire que cela, lorsque l'utilisateur coche une case ou modifie la valeur du menu déroulant, les valeurs retenues, une fois validation du formulaire, ne sont pas véhiculées vers les tables en base de données.

    Avez-vous déjà été confrontés à un problème de ce type ? Merci par avance pour votre aide.

    el

  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 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Bonjour,

    Il doit y avoir des Vrai Faux qui trainent dans les expressions.

    Il faut préférer la valeur numérique -1 0 ou True False.

    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 régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut
    Bonjour Loufab,

    Pour ma part je n'utilise que True et False (mon pc est en anglais et me renverrait une erreur si j'utilisais Vrai ou Faux)...

    Par exemple, dans l'un des menus déroulants j'ai le contenu suivant dans la propriété Row source :

    True;Avec assurance décès;False;Sans assurance décès

    Ce menu déroulant est mis à jour au chargement par une instruction VBA via la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Cbo_Assurance = Nz(rst!ASSURANCE, False)
    Quand je teste le contenu du jeu de données sur un cas précis en mettant un point d'arrêt sur cette ligne, la valeur retournée par rst!ASSURANCE est TRUE.

    Pourtant, sur les PC en français, le menu déroulant n'est pas mis à jour. Je pense qu'il s'attend à recevoir la valeur True comme s'il s'agissait de texte ("True").

    J'ai essayé avec 0 et -1 mais non seulement ça ne marche pas sur les PC en français, mais ça ne marche plus non plus sur mon pc en anglais...

    La base contient des dizaines de champs booléens, une solution serait de transformer ces champs en valeur numérique mais cela demanderait un travail énorme de refaire le code associé...

    Je suis perdu là...

  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 004
    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 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Dans la base de données native d'Access les booléens sont déjà en numérique. C'est juste la représentation à l'écran que les fait apparaitre en tant que true/false/vrai/faux/case à cocher.

    Le licence Française fonctionne très bien avec un code Full UK, c'est d'ailleurs la meilleure approche de programmation conseillée.

    Tu as essayé de désactiver la "correction des noms" sur une des licences en Français ?
    Cette option me mettait la grouille sur les licences DE.
    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 régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    Pour finir, je suis passé sur des valeurs numériques.
    Je vais éviter les valeurs booléennes dans les menus déroulants du coup et plutôt opter pour les boutons radio...
    Merci pour votre aide.
    el

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

Discussions similaires

  1. Un comportement étrange (de plus ?) sur variable
    Par Guigsounet dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 08/07/2010, 20h14
  2. Comportement étrange d'IE sur interprétation code d'initialisation
    Par ephemere dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/07/2009, 16h32
  3. Comportement étrange ksh sur linux
    Par hugo123 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 09/08/2006, 10h55
  4. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38
  5. [XSLT][ACCESS]condition sur valeur
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 23
    Dernier message: 10/01/2005, 14h14

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