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 :

code pour forcer . dans paramètres régionaux


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut code pour forcer . dans paramètres régionaux
    Bonjour

    Face au classique problème de . ou de , dans les paramètres régionaux, avez vous un code VB qui permet de forcer au lancement de l'appli le "." et éventuellement de repasser en "," en quittant ?

    Je dois utiliser 2 applis 36000x par jour qui demandent chacune un séparateur différent et je peux intégrer ce code dans l'une des deux applis...

    Merci par avance pour votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 133
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu peux utiliser ce code dans ton appli :
    Tu copies les deux fonctions dans un module...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Option Explicit
     
    Private Const LOCALE_SDECIMAL                               As Long = &HE                'décimal
    Private Const LOCALE_SCURRENCY                              As Long = &H14               'monétaire
     
    Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
    Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCTYPE As Long, ByVal lpLCData As String) As Long
     
    Public Function GetDecimalSeparator(ByVal LocalTypeValue As Long, Optional ByRef SeparatorString As String) As String
    Dim lngBufferSize                                           As Long
    Dim lngLanguageID                                           As Long
    Dim strSeparator                                            As String
     
        lngLanguageID = GetUserDefaultLCID()
        lngBufferSize = GetLocaleInfo(lngLanguageID, LocalTypeValue, vbNullString, 0) - 1
        GetDecimalSeparator = Space$(lngBufferSize)
        GetLocaleInfo lngLanguageID, LocalTypeValue, strSeparator, lngBufferSize
        If Len(SeparatorString) = 1 Then
            SeparatorString = IIf(strSeparator = Chr(44), "Virgule", "Point")
            GetDecimalSeparator = strSeparator
        End If
    End Function
     
    Public Function SetDecimalSeparator(ByRef Separator As String, ByVal LocalTypeValue As Long)
    Dim lngLanguageID                                           As Long
     
        If Separator <> GetDecimalSeparator() Then
            If Separator = Chr(46) Or Separator = Chr(44) Then
                lngLanguageID = GetUserDefaultLCID()
                SetLocaleInfo lngLanguageID, LocalTypeValue, Separator
            End If
        End If
    End Function
    Par exemple, comme ceci au niveau de séparateur de décimales...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub DotSeparator()
    ''' Séparateur Point
        Call SetDecimalSeparator(".", LOCALE_SDECIMAL)
    End Sub
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub CommaSeparator()
    ''' Séparateur Virgule
        Call SetDecimalSeparator(",", LOCALE_SDECIMAL)
    End Sub
    Attention, il faut bien différencier Décimale et Monétaire...
    Peut-être te faudra t-il gérer les deux, mais tu as le code pour...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

Discussions similaires

  1. Structure de table pour supporter les paramètres régionaux
    Par Passepoil dans le forum Développement
    Réponses: 10
    Dernier message: 04/05/2011, 18h55
  2. [localisation] Forcer les paramètres régionaux d'un rapport
    Par bossun dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 18/09/2008, 09h10
  3. Réponses: 0
    Dernier message: 06/08/2008, 18h12
  4. code pour écrire dans un fichier excel
    Par guintolli dans le forum SharePoint
    Réponses: 3
    Dernier message: 22/07/2008, 10h30
  5. code pour modifier les paramètres ILO HP
    Par thierry007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/10/2007, 19h38

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