Champ monétaire dans base access, les virgules

cs_nirega Messages postés 58 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 14 janvier 2008 - 1 déc. 2005 à 00:03
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 1 déc. 2005 à 19:21
Bonjour,
j'ai un petit probleme de compatibilité ou je ne sais trop quoi !!

j'utilise un serveur local pour testé
mes codes sur une base Access, sur ma machine j'ai pas de probleme, mais si je met mon code en ligne et bien on dirais qu.il ne prend pas le montant que je lui donne ..........il ne met pas les point(.) ou les virgiule a la bonne place.
si j'entre 9,99 et bien sur le code en ligne il va me donner 999
ou 10,99 il va me donner 1099

je fais un replace(var,".",",")
de tout bord tout coté......mais rien ne change.

j'ai aussi essayé les session.LCID = 3084
sans succes aussi

avez-vous une idée ??

nirega

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 déc. 2005 à 01:27
salut,


ton problème ressemble plus à un type de champ non-adéquat plutôt qu'à une mauvaise interprétation du séparateur monétaire.....





PCPT [AFCK]
0
cs_nirega Messages postés 58 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 14 janvier 2008
1 déc. 2005 à 02:16
tu veux dire quoi par la ?? un champ non-adéquat ?

nirega
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 déc. 2005 à 07:58
un "type". dans ta base elle-même.
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
1 déc. 2005 à 19:21
Chose importante, Access se base sur les séparateurs correspondants au code pays de la machine sur laquelle il est, pour cela si on utilise des formats fixe de date et de séparateur dans une application, et que le code pays de la machine sur laquelle la base se trouve est différent on rencontre des problème de ce genre. Le mieux dans une application c'est de récupérer directement ces éléments au démarrage et de formaté ces champs de date et de nombre en fonction.


'-------------------------------------------------------------------------
' Fonction qui retourne une valeur de type string depuis la registry
'-------------------------------------------------------------------------
Public Function mRegistry_QueryValueKeyString(Key As Long, SubKey As String, _
Name As String) As String


Dim lRetVal As Long
Dim hKey As Long
Dim sRetTxt As String
Dim lRetTxt As Long


If Trim(Right(SubKey, 1)) <> "" Then
SubKey = SubKey & ""
End If
lRetVal = RegOpenKeyEx(Key, SubKey, 0&, KEY_READ, hKey)
sRetTxt = String(4096, 32)
lRetTxt = Len(sRetTxt)
lRetVal = RegQueryValueExString(hKey, Name, 0&, REG_SZ, sRetTxt, lRetTxt)
lRetVal = RegCloseKey(hKey)
mRegistry_QueryValueKeyString = Trim(Left(sRetTxt, lRetTxt - 1))

End Function

'Retrouve le séparateur Decimal utilisé
SepDec = mRegistry_QueryValueKeyString(&H80000001, "Control Panel\International", "sMonDecimalSep")

'Retrouve le séparateur de date utilisé
SepDate = mRegistry_QueryValueKeyString(&H80000001, "Control Panel\International", "sDate")

'Retrouve le séparateur de milier utilisé
SepMil = mRegistry_QueryValueKeyString(&H80000001, "Control Panel\International", "sMonThousandSep")

'Retrouve le format de date (court)
ShortDate = mRegistry_QueryValueKeyString(&H80000001, "Control Panel\International", "sShortDate")

Pascal Laurençon
0
Rejoignez-nous