leroi10desanges
Messages postés3Date d'inscriptionsamedi 28 juin 2008StatutMembreDernière intervention23 décembre 2010 23 déc. 2010 à 14:01
j ai un ptit problem
apre l ajout de champ; j ai un bouton pour modifier le champ mais c champ prond la valour de la bas de donne avec vigrule apre la modification ca march pas par ce que c chaom avec la virgul mais apre changer le vergule avec le point ca march bien
voila ;
je voudrez un code pour charger la virgul avec le poit au cas de clique sur modifier
merci
cordialment
Mutos
Messages postés103Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention14 mai 2010 15 févr. 2006 à 16:10
Bonjour,
Au fait, juste un petit commentaire, on peut bien modifier la culture de l'application en cours en quelques petites lignes sous .Net, sans toucher le moins du monde au règlage de la machine.
Le code ci-dessous :
' Imports needed to change application culture
Imports System.Globalization ' For Thread
Imports System.Threading ' For CultureInfo
' Change culture to force decimal "." even if the machine has ","
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
Il force la culture de l'application en anglais US, quel que soit le règlage de la machine, exactement ce dont j'avais besoin...
rdesbiens
Messages postés3Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention19 octobre 2010 15 févr. 2006 à 15:27
Bonjour, J'ai essayé votre petite applciation. Ca fonctionne . sauf que lorsque je fais un update SQL, si j'ai la virgule comme séparateur dans le panneau de configuration ca fonctionne, mais si je met le point cela ne fonctionne pas même si je modifie le separateur avec une virgule a partir de votre fonction.
CMD1.CommandText "UPDATE form_suivi SET [durée] " & Txtdurée.Text
commmit ect
J'ai l'erreur "erreur de syntaxe dans l'instruction update"
Merci
Mutos
Messages postés103Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention14 mai 2010 27 déc. 2005 à 05:31
Bonjour,
J'ai le même problème, une appli (éditeur de systèmes stellaires) qui fait une exception sur des constantes en "." lorsqu'elle se trouve sur une machine en ",", je souhaiterai qu'elle fonctionne quel que soit le séparateur de la machine. Alors j'ai commencé à lire le post... Et après SPY166, en un an, plus de nouvelles, déçu !
Je me demande si l'on ne peut pas modifier uniquement la culture de l'application sans toucher à celle de la machine ?
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 28 nov. 2004 à 13:12
Ah ben oui je suis bête
DonCastor
Messages postés9Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention10 janvier 2005 27 nov. 2004 à 17:27
la virgule qui sépare les unité des décimales dans les tableurs excel par exemple.
Tu peux soit avoir une virugule pour une convention française, soit avoir un point pour une convention americaine ou anglaise...
J'espere avoir répondu a ta question!
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 5 oct. 2004 à 18:57
Salut, c'est quoi ce que vous appelez séparateur décimal ?
DonCastor
Messages postés9Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention10 janvier 2005 5 oct. 2004 à 10:01
Ben justement, le séparateur reste inchangé tout le temps de l'appli ( évidemment ce la depends où tu appelle ce code ).
Le seul problème qui subsiste est que je ne peux pas rentrer dans le panneu de config avec ce code, docn je suis en train de mixer celui la avec celui de l'api kernel32 on va voir ce que ca donne!
merci pour ton commentaire
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 5 oct. 2004 à 08:51
Et si tu redemandes le séparateur décimal courant après ta manipulation, cela fonctionne ?
Moi aussi j'avais essayé de le faire par le framework, mais cela ne fonctionnais pas, probablement parceque je n'avais pas les droits requis. De plus, c'était pour que OWC 9 fonctionne, or OWC est un controle ActiveX, il n'est donc pas lié à la culture courante de l'appli .net : conclusion : je continue à passer par les API et cela marche bien... mais il y a toujours le risque de perturber une autre appli tourant en meme temps, mais bon...
voici ma fonction :
#Region "Gestion séparateur décimal"
Public Declare Function SetLocaleInfo% Lib "kernel32" Alias "SetLocaleInfoA" ( _
ByVal Locale%, ByVal LCType%, ByVal lpLCData$)
Public Declare Function GetSystemDefaultLCID% Lib "kernel32" ()
Public Function bChangerSeparateurDecimal(Optional ByRef sSepDecimalImpose$ = ".", _
Optional ByRef bRetablir As Boolean = False) As Boolean
' On peut lire le séparateur decimal au lancement du programme,
' mais on n'arrive pas à lire le séparateur actuel après changement
Dim sSepDecimalActuel$ = Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator()
Dim lCodePage_LCID%, lRet% ' Long en VB6
' Code du séparateur décimal : decimal separator
Const lLOCALE_SDECIMAL% = 14
' Conserver le séparateur décimal actuel
Static bChangementEffectif As Boolean
Static sPrecedentSepDecimal$
If sPrecedentSepDecimal "" Then sPrecedentSepDecimal sSepDecimalActuel
' Forcer le séparateur décimal (par exemple ".")
Dim lFalse& = 0
If Not bRetablir And sSepDecimalActuel <> sSepDecimalImpose Then
lCodePage_LCID = GetSystemDefaultLCID() ' Lire le code page actuel
lRet = SetLocaleInfo(lCodePage_LCID, lLOCALE_SDECIMAL, sSepDecimalImpose)
If lRet = lFalse Then Exit Function
bChangementEffectif = True
' Ce code ne marche pas, car l'instance est en lecture seule
'Try
' Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator = sSepDecimalImpose
' bChangementEffectif = True
'Catch ex As Exception
' Exit Function
'End Try
End If
' Rétablir le précédent séparateur décimal avant l'appel à cette fonction
If bRetablir And bChangementEffectif Then
lCodePage_LCID = GetSystemDefaultLCID() ' Lire le code page actuel
lRet = SetLocaleInfo(lCodePage_LCID, lLOCALE_SDECIMAL, sPrecedentSepDecimal)
If lRet = lFalse Then Exit Function
bChangementEffectif = False
End If
23 déc. 2010 à 14:01
apre l ajout de champ; j ai un bouton pour modifier le champ mais c champ prond la valour de la bas de donne avec vigrule apre la modification ca march pas par ce que c chaom avec la virgul mais apre changer le vergule avec le point ca march bien
voila ;
je voudrez un code pour charger la virgul avec le poit au cas de clique sur modifier
merci
cordialment
15 févr. 2006 à 16:10
Au fait, juste un petit commentaire, on peut bien modifier la culture de l'application en cours en quelques petites lignes sous .Net, sans toucher le moins du monde au règlage de la machine.
Le code ci-dessous :
' Imports needed to change application culture
Imports System.Globalization ' For Thread
Imports System.Threading ' For CultureInfo
' Change culture to force decimal "." even if the machine has ","
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
Il force la culture de l'application en anglais US, quel que soit le règlage de la machine, exactement ce dont j'avais besoin...
@+
Benoît 'Mutos' ROBIN
http://hoshikaze.net
15 févr. 2006 à 15:27
CMD1.CommandText "UPDATE form_suivi SET [durée] " & Txtdurée.Text
commmit ect
J'ai l'erreur "erreur de syntaxe dans l'instruction update"
Merci
27 déc. 2005 à 05:31
J'ai le même problème, une appli (éditeur de systèmes stellaires) qui fait une exception sur des constantes en "." lorsqu'elle se trouve sur une machine en ",", je souhaiterai qu'elle fonctionne quel que soit le séparateur de la machine. Alors j'ai commencé à lire le post... Et après SPY166, en un an, plus de nouvelles, déçu !
Je me demande si l'on ne peut pas modifier uniquement la culture de l'application sans toucher à celle de la machine ?
@+
Benoît 'Mutos' ROBIN
http://hoshikaze.net
28 nov. 2004 à 13:12
27 nov. 2004 à 17:27
Tu peux soit avoir une virugule pour une convention française, soit avoir un point pour une convention americaine ou anglaise...
J'espere avoir répondu a ta question!
5 oct. 2004 à 18:57
5 oct. 2004 à 10:01
Le seul problème qui subsiste est que je ne peux pas rentrer dans le panneu de config avec ce code, docn je suis en train de mixer celui la avec celui de l'api kernel32 on va voir ce que ca donne!
merci pour ton commentaire
5 oct. 2004 à 08:51
Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator()
Moi aussi j'avais essayé de le faire par le framework, mais cela ne fonctionnais pas, probablement parceque je n'avais pas les droits requis. De plus, c'était pour que OWC 9 fonctionne, or OWC est un controle ActiveX, il n'est donc pas lié à la culture courante de l'appli .net : conclusion : je continue à passer par les API et cela marche bien... mais il y a toujours le risque de perturber une autre appli tourant en meme temps, mais bon...
voici ma fonction :
#Region "Gestion séparateur décimal"
Public Declare Function SetLocaleInfo% Lib "kernel32" Alias "SetLocaleInfoA" ( _
ByVal Locale%, ByVal LCType%, ByVal lpLCData$)
Public Declare Function GetSystemDefaultLCID% Lib "kernel32" ()
Public Function bChangerSeparateurDecimal(Optional ByRef sSepDecimalImpose$ = ".", _
Optional ByRef bRetablir As Boolean = False) As Boolean
' On peut lire le séparateur decimal au lancement du programme,
' mais on n'arrive pas à lire le séparateur actuel après changement
Dim sSepDecimalActuel$ = Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator()
Dim lCodePage_LCID%, lRet% ' Long en VB6
' Code du séparateur décimal : decimal separator
Const lLOCALE_SDECIMAL% = 14
' Conserver le séparateur décimal actuel
Static bChangementEffectif As Boolean
Static sPrecedentSepDecimal$
If sPrecedentSepDecimal "" Then sPrecedentSepDecimal sSepDecimalActuel
' Forcer le séparateur décimal (par exemple ".")
Dim lFalse& = 0
If Not bRetablir And sSepDecimalActuel <> sSepDecimalImpose Then
lCodePage_LCID = GetSystemDefaultLCID() ' Lire le code page actuel
lRet = SetLocaleInfo(lCodePage_LCID, lLOCALE_SDECIMAL, sSepDecimalImpose)
If lRet = lFalse Then Exit Function
bChangementEffectif = True
' Ce code ne marche pas, car l'instance est en lecture seule
'Try
' Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator = sSepDecimalImpose
' bChangementEffectif = True
'Catch ex As Exception
' Exit Function
'End Try
End If
' Rétablir le précédent séparateur décimal avant l'appel à cette fonction
If bRetablir And bChangementEffectif Then
lCodePage_LCID = GetSystemDefaultLCID() ' Lire le code page actuel
lRet = SetLocaleInfo(lCodePage_LCID, lLOCALE_SDECIMAL, sPrecedentSepDecimal)
If lRet = lFalse Then Exit Function
bChangementEffectif = False
End If
bChangerSeparateurDecimal = True
End Function
#End Region