Format decimal

Résolu
Bonjour,
J'ai une autre préoccupation.
J'ai conçu grâce à vous sous access, un petit programme ou logiciel de gestion des évaluations au primaire.
Voici mon soucis
Lorsque j'installe le logiciel dans un autre ordinateur je suis obligé d'aller dans le panneau de configuration puis entrer dans modifier le format de nombre de l'ordinateur pour changer le Symbole décimal ou le séparateur de liste, sinon les champs contenant les moyennes et les rangs affichent Erreur.
Je fais cet exercice à chaque fois que je change d'ordinateur.
J'ai inséré dans un module ce code que voici :

Function DecimalSep() As String
DecimalSep = Mid$(1 / 2, 2, 1)
End Function

Function NumberUS(ByVal varValue As Variant) As String
NumberUS = Replace(Str(varValue), DecimalSep(), ".")
End Function

Mais malgré ce code je suis obligé de faire le même exercice à chaque fois que je change d'ordinateur.
Alors que faire pour éviter à chaque fois de modifier le symbole décimal du nouvel ordinateur dans lequel j'installe le logiciel?
Espérant recevoir une réponse, recevez mes sincères remerciements pour les réponses précédentes qui m'ont beaucoup aidé ainsi que ma très haute considération

4 réponses

  1. bonjour
    tu peux créer le format du champ numerique dans ces propriétés lors de sa creation
    0
    1. Contributeur Ambassadeur
      bonjour, quel est le type des champs numériques dans tes tables? (les champs utilisés dans les formules calculant les moyennes et les rangs)
      0
      1. Ok voici quelques détails
        Les deux champs sont chacun calculés à partir de deux autres champs TOTAL dont le type de résultat est : réel double et MOY1 (MOYENNE 1) dont le type de resultat est : Decimal.
        Voici ce que j'ai fais
        MOYENNE (MOY1) : [TOTAL]/8.5
        Rang: CpteDom("*";"[R_EVA1]";"[MOY1]>" & [MOY1])+1
        Merci
        0
      2. Contributeur Ambassadeur
        @zonteomer74pourrais-tu partager ton fichier?
        0
      3. Je sais pas comment partager le fichier parce que j'ai essayé la dernière fois sans réussir.
        0
      4. Ok je lai fais finalement jai réussi je crois
        .
        0
    2. Contributeur Ambassadeur
      c'était une bonne idée d'ajouter du code dans un module, et il faut l'utiliser.
      exemple:
      =DCount("*";"[R_EVA1]";"[MOY1]>" & NumberUS([MOY1]))+1


      private Function DecimalSep() As String 
      DecimalSep = Mid$(1 / 2, 2, 1) 
      End Function 
      
      Function NumberUS(ByVal varValue As Variant) As String 
      NumberUS = Replace(Str(varValue), DecimalSep(), ".") 
      End Function
      0
      1. =DCount("*";"[R_EVA1]";"[MOY1]>" & NumberUS([MOY1]))+1
        ou
        =CpteDom("*";"[R_EVA1]";"[MOY1]>" &NumberUS( [MOY1]))+1

        J'avais une fois utilisée cette formule. Mais à chaque fois il y a une boite de dialogue qui s'affiche dans laquelle s'est écrit ceci:
        <<L'expression contient un nom ambigu.Vérifiez que chaque nom de l'expression fait référence à un seul objet>>
        Alors elle signal NumberUS comme l’élément posant problème
        Donc je me suis passé de NumberUS et la formule fonctionne.
        0
      2. Contributeur Ambassadeur
        @zonteomer74tu avais probablement déclaré deux fois la fonction NumberUS, d'où l’ambiguïté.
        0
    3. Contributeur Ambassadeur
      autre possibilité:
      =DCount("*";"[R_EVA1]";"round(1000*[MOY1],0)> " & Round(1000*[MOY1];0))+1
      0
      1. Ok. Je vais le tester
        0
      2. La formule fonctionne à merveille. J'ai changé les formats de nombre dans panneau de configuration et ça marche.
        Merci.
        0