Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Format d'un champ (pb après la virgule)

3 réponses
Avatar
Loupio
Bonjour,

Que de galères....avec tous ces formats de champs...

J'ai fait une petite application qui confonctionne bien (sauf), un point. La
mise à jour de champs numériques:

Je m'explique:
----------------

J'ai une table avec 3 champs : CodCarriere ; Distance ; Péage
J'ai un formulaire avec 1 combo, 1 textebox et un bouton (MAJ).

Dans la table, le champ qui nous interresse est Péage. Il y a 3 tarifs
différents (2€, 9,20€ et 12,20€) c'est tout (sur environs 1000
enregistrements)

Lorsque le formulaire s'ouvre, le combo charge les 3 tarifs. J'en choisi un,
ex 2€, puis dans le textebox, j'écrit le nouveau tarif (Mise à jour) ex
3,30€. Si je clique sur le bouton (MAJ), le code va chercher tous les
enregistrements ou le prix est 2€ et dois le remplacer par 3,30€.

Mon code marche nickel. Par contre il m'inscrit uniquement les nouveaux prix
"SANS" chiffres après la virgule comme s'il le considérait comme ENTIER. (ex
au lieu de 3,30€ il écrit seulement 3€, c'est tout)...

--------------
Mon champ de ma table est de type : Réel double
Le format de mon champ est : Nombre général
Le nombre de décimal est : Auto

Dans mon code VBA:

Je déclare mes "ancien_prix" et "nouveau_prix" as double

Pourtant ca ne fonctionne pas.

Auriez vous eu un soucis du meme type ?

Merci

Loupio

3 réponses

Avatar
Fred
Deux possibilités vraissemblables:
Le champ cible est peut-être un entier court ou long
Ou bien, il faut que tu vérifies le format décimal dans le panneau de
configuration (option régionales --> presonnaliser --> onglet nombre -->
symbole décimal) tu choisis le même symbole décimal que celui utilisé dans
ton appli.)

Fred
"Loupio" a écrit dans le message de news:

Bonjour,

Que de galères....avec tous ces formats de champs...

J'ai fait une petite application qui confonctionne bien (sauf), un point.
La
mise à jour de champs numériques:

Je m'explique:
----------------

J'ai une table avec 3 champs : CodCarriere ; Distance ; Péage
J'ai un formulaire avec 1 combo, 1 textebox et un bouton (MAJ).

Dans la table, le champ qui nous interresse est Péage. Il y a 3 tarifs
différents (2?, 9,20? et 12,20?) c'est tout (sur environs 1000
enregistrements)

Lorsque le formulaire s'ouvre, le combo charge les 3 tarifs. J'en choisi
un,
ex 2?, puis dans le textebox, j'écrit le nouveau tarif (Mise à jour) ex
3,30?. Si je clique sur le bouton (MAJ), le code va chercher tous les
enregistrements ou le prix est 2? et dois le remplacer par 3,30?.

Mon code marche nickel. Par contre il m'inscrit uniquement les nouveaux
prix
"SANS" chiffres après la virgule comme s'il le considérait comme ENTIER.
(ex
au lieu de 3,30? il écrit seulement 3?, c'est tout)...

--------------
Mon champ de ma table est de type : Réel double
Le format de mon champ est : Nombre général
Le nombre de décimal est : Auto

Dans mon code VBA:

Je déclare mes "ancien_prix" et "nouveau_prix" as double

Pourtant ca ne fonctionne pas.

Auriez vous eu un soucis du meme type ?

Merci

Loupio



Avatar
Eric
Bonjour,

Puisque le Textbox est une zone de texte, quelle fonction utilises-tu
pour convertir le contenu dans ton champ ?
Si tu utilises Val() tu n'auras que la partie entière du nombre décimal.
Il te faut donc utiliser CDbl() mais si tu fais ta maj par une requête
SQL, il faudra alors remplacer la virgule par un point dans
l'instruction SQL à l'aide de la fonction Replace()

Ainsi, si Texte0 contient 3,3

Private Sub Commande4_Click()
Me.Texte2 = Val(Me.Texte0) ' --> donne 3
Me.Texte5 = CDbl(Me.Texte0) ' --> donne 3,3
End Sub

Bonjour,

Que de galères....avec tous ces formats de champs...

J'ai fait une petite application qui confonctionne bien (sauf), un point. La
mise à jour de champs numériques:

Je m'explique:
----------------

J'ai une table avec 3 champs : CodCarriere ; Distance ; Péage
J'ai un formulaire avec 1 combo, 1 textebox et un bouton (MAJ).

Dans la table, le champ qui nous interresse est Péage. Il y a 3 tarifs
différents (2€, 9,20€ et 12,20€) c'est tout (sur environs 1000
enregistrements)

Lorsque le formulaire s'ouvre, le combo charge les 3 tarifs. J'en choisi un,
ex 2€, puis dans le textebox, j'écrit le nouveau tarif (Mise à jour) ex
3,30€. Si je clique sur le bouton (MAJ), le code va chercher tous les
enregistrements ou le prix est 2€ et dois le remplacer par 3,30€.

Mon code marche nickel. Par contre il m'inscrit uniquement les nouveaux prix
"SANS" chiffres après la virgule comme s'il le considérait comme ENTIER. (ex
au lieu de 3,30€ il écrit seulement 3€, c'est tout)...

--------------
Mon champ de ma table est de type : Réel double
Le format de mon champ est : Nombre général
Le nombre de décimal est : Auto

Dans mon code VBA:

Je déclare mes "ancien_prix" et "nouveau_prix" as double

Pourtant ca ne fonctionne pas.

Auriez vous eu un soucis du meme type ?

Merci

Loupio



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Loupio
Merci pour vos réponses,

J'utilisais effectivement val(...),
J'ai essayé avec la fonction CDbl est comme par miracle ... Ca marche!
Trop fort!


Merci beaucoup


Loupio




Bonjour,

Puisque le Textbox est une zone de texte, quelle fonction utilises-tu
pour convertir le contenu dans ton champ ?
Si tu utilises Val() tu n'auras que la partie entière du nombre décimal.
Il te faut donc utiliser CDbl() mais si tu fais ta maj par une requête
SQL, il faudra alors remplacer la virgule par un point dans
l'instruction SQL à l'aide de la fonction Replace()

Ainsi, si Texte0 contient 3,3

Private Sub Commande4_Click()
Me.Texte2 = Val(Me.Texte0) ' --> donne 3
Me.Texte5 = CDbl(Me.Texte0) ' --> donne 3,3
End Sub

Bonjour,

Que de galères....avec tous ces formats de champs...

J'ai fait une petite application qui confonctionne bien (sauf), un point. La
mise à jour de champs numériques:

Je m'explique:
----------------

J'ai une table avec 3 champs : CodCarriere ; Distance ; Péage
J'ai un formulaire avec 1 combo, 1 textebox et un bouton (MAJ).

Dans la table, le champ qui nous interresse est Péage. Il y a 3 tarifs
différents (2€, 9,20€ et 12,20€) c'est tout (sur environs 1000
enregistrements)

Lorsque le formulaire s'ouvre, le combo charge les 3 tarifs. J'en choisi un,
ex 2€, puis dans le textebox, j'écrit le nouveau tarif (Mise à jour) ex
3,30€. Si je clique sur le bouton (MAJ), le code va chercher tous les
enregistrements ou le prix est 2€ et dois le remplacer par 3,30€.

Mon code marche nickel. Par contre il m'inscrit uniquement les nouveaux prix
"SANS" chiffres après la virgule comme s'il le considérait comme ENTIER. (ex
au lieu de 3,30€ il écrit seulement 3€, c'est tout)...

--------------
Mon champ de ma table est de type : Réel double
Le format de mon champ est : Nombre général
Le nombre de décimal est : Auto

Dans mon code VBA:

Je déclare mes "ancien_prix" et "nouveau_prix" as double

Pourtant ca ne fonctionne pas.

Auriez vous eu un soucis du meme type ?

Merci

Loupio



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr