ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 2009
-
28 sept. 2006 à 16:50
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 2009
-
29 sept. 2006 à 17:17
bjr
je suis confronté a un pb du au separateur decimal;
dans un form l'utilisateur saisit une qté puis un prix (que je lui demande de saisir avec un point)
et bien sur un total est calculé,
et ce dans une base access.
dans cette base , la qté et le prix sont en format texte et le total en numérique ( si j'ai fait comme cela c'est que sinon dans la form il m'arrondissait a l'unité superieure....)
bon, dans les options regionales de windows xp fam je suis en symbole décimal avec le point,
je mets mon prog sur la becane d'a coté qui lui est en symbole regional en virgule et paf
comme j'ai demandé de saisir avec un point il me met "type incompatible".....
comment contourner cela pour que , que se soit en virgule ou en point
la qte multipliée par le prix (+ eventuelement le port) donne un total .....
là je vois pas ;;;;;
merci d'avance
patrik
alosamoelle
Messages postés129Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention23 mai 20091 28 sept. 2006 à 17:57
Tu peux essayer cela, ce n'est pas tres "propre" mais cela marche. En cas d'erreur tu change les points par des virgules
on error goto Changepoin
function Change point()
nouveau = Replace(chiffre, ",", ".")
end function
Bien sur a adapter a ton appli, bon courage
Je sais que tu peux changer le parametre regionale mais le probleme c'est qu'il faut tout remettre en place sinon les autres appli ne mmarcheront plus sur la becane
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 28 sept. 2006 à 18:06
Ou mieux, détecter ce qu'il faut utiliser.
If Mid$(Cstr(1/2),2,1) = ",' Then
nouveau = Replace(chiffre, ".", ",") ' Virgule : Replace les points par des virgules
Else
nouveau = Replace(chiffre, ",", ".") ' Point : Replace les virgules par des points
End If
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 20091 28 sept. 2006 à 18:42
ben ca a l'air de marcher, casy
du moins sur ma becane il faut que j'essaye sur la testeuse
maintenant mon total
quand je valide ma fiche , il ne me prend pas la virgule et ce qu'il y a derriere
si résultat 32.40 il m'affiche 32
si resultat 32.60 il m'affiche 33
ma formule est la suivante:
dans
Private Sub CmdValider_Click()
Dim I As Integer
Dim x As Double, y As Double, z As Double, W As Double
Dim sommecolonne As Integer
Dim m As Integer
If txtFields(6).Text "" Then txtFields(6).Text "0"If txtFields(7).Text "" Then txtFields(7).Text "0"If Frmpiece.txtFields(3) "" Then Frmpiece.txtFields(3) "0"If Frmpiece.txtFields(9) "" Then Frmpiece.txtFields(9) "..."
On Error GoTo UpdateErr
x = Frmpiece.txtFields(3)
y = Frmpiece.txtFields(6).Text
z = Frmpiece.txtFields(7).Text
W = (x * y) + z
Frmpiece.txtFields(8) = W 'Format(W, "#0.00")
x = Frmpiece.txtFields(3) ' c'est la qté
y = Frmpiece.txtFields(6).Text ' c'est le prix
z = Frmpiece.txtFields(7).Text ' c'est le port
W = (x * y) + z
Frmpiece.txtFields(8) = Format(W, "#0.00") 'c'est le total
etc.....
merci de l'aide
patrik
Vous n’avez pas trouvé la réponse que vous recherchez ?
Dolphin Boy
Messages postés630Date d'inscriptionvendredi 5 mai 2006StatutMembreDernière intervention17 février 2007 29 sept. 2006 à 11:17
Salut, pour traiter le prob des séparateurs décimaux, j'ai un bout de code, si ça peut t'aider :
'déclaration des variables au niveau général
Public SeparateurDecimalOui As String
Public SeparateurDecimalNon As String
'initialisation des variables
If InStr(CStr(3 / 2), ".") Then
SeparateurDecimalOui = "."
SeparateurDecimalNon = ","
Else
SeparateurDecimalOui = ","
SeparateurDecimalNon = "."
End If
'quand tu en as besoin
If Not IsNumeric(TonNombre) then
TonNombre = Replace(TonNombre, SeparateurDecimalNon, SeparateurDecimalOui)
End If
ecranbleu27
Messages postés190Date d'inscriptionvendredi 4 juin 2004StatutMembreDernière intervention29 avril 20091 29 sept. 2006 à 17:17
CASY: ca ne marche pas....
en fait le probleme est que si les options regionales /symbole décimal de la machine ou est installé le prog est sur le point, alors pas de pb,
mais si il est sur la virgule et bien au lieu de me mettre 12.45 il me le transforme en 1245 .
(j'ai mis le format ds la bd access a monetaire pour le prix,port et total)
ce que je souhaite et on peut plus simple,
dans ma form et surtout sur n'importe quelle machine, le prix X qte + port = TOTAL
la formule je sais la faire , mais comment dois-je formater ces parametres dans ma bd , et dans le code pour que si on saisi:
12.00 X 2 = 24.00
+ port 6.99
=total 30.99
et ce SUR TOUTES LES MACHINES.....
ca me prend la tete.....
merci
patrik