Entrer des données sans virgule dans formulaire Access
pentium91
Messages postés
23
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour à tous,
voila mon probleme, j ai un formulaire qui insere les donnees saisie dans mes tables, j'aimerais que
quand je tape au clavier numérique 26 cela me donne 0,26
quand je tape au clavier numérique 212 cela me donne 2,12
quand je tape au clavier numérique 5371 cela me donne 53,71
quand je tape au clavier numérique 3851,19 cela me donne 3851,19
après plusieurs tentatives de changement au niveau du "type de données" et du "format" voir aussi "masque de saisie" je fais appel a votre bonne volonté.
Merci d'avance.
<config>Windows 7 / Access 2003
voila mon probleme, j ai un formulaire qui insere les donnees saisie dans mes tables, j'aimerais que
quand je tape au clavier numérique 26 cela me donne 0,26
quand je tape au clavier numérique 212 cela me donne 2,12
quand je tape au clavier numérique 5371 cela me donne 53,71
quand je tape au clavier numérique 3851,19 cela me donne 3851,19
après plusieurs tentatives de changement au niveau du "type de données" et du "format" voir aussi "masque de saisie" je fais appel a votre bonne volonté.
Merci d'avance.
<config>Windows 7 / Access 2003
A voir également:
- Entrer des données sans virgule dans formulaire Access
- Whatsapp formulaire opposition - Guide
- Fuite données maif - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Rechercher ou entrer l'adresse - Guide
- Entrer les informations d'identification reseau - Guide
10 réponses
Bonjour,
Je suppose que tu saisis les données dans des textbox ?
Si oui, tu peu traiter avec...
Possible que tu doive rectifier la virgule par un point avec Replace
A+
Je suppose que tu saisis les données dans des textbox ?
Si oui, tu peu traiter avec...
L = "3851,19"
If InStr(1, L, ",") <> 0 Then
V = Val(L)
Else
V = L / 100
End I
Possible que tu doive rectifier la virgule par un point avec Replace
A+
@lermite222
bonjour,
suite à ma question "Entrer des données sans virgule dans formulaire " ,
j'ai testé ton code il fonctionne bien au niveau de la virgule mais .....
si je tape 5,05 il me renvoi 5,00 ??
si je tape 5,99 il me renvoi 5,00 ??
dès que je tape une virgule dans mon nombre : il met les centimes à 00
je pensait au début que c'était une histoire "d'arrondie" mais non
peut être le format ?? format=Euro décimales=Auto
je poursuit mes recherches ..... si tu trouves avant moi , merci d'avance
A+
bonjour,
suite à ma question "Entrer des données sans virgule dans formulaire " ,
j'ai testé ton code il fonctionne bien au niveau de la virgule mais .....
si je tape 5,05 il me renvoi 5,00 ??
si je tape 5,99 il me renvoi 5,00 ??
dès que je tape une virgule dans mon nombre : il met les centimes à 00
je pensait au début que c'était une histoire "d'arrondie" mais non
peut être le format ?? format=Euro décimales=Auto
je poursuit mes recherches ..... si tu trouves avant moi , merci d'avance
A+
Oui, m'en doutais, c'est bien comme je t'ai prévenu avec Replace...
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
L = "3851,19"
Dim V As Double
Dim L As String
L = "3851"
If InStr(1, L, ",") <> 0 Then
V = Val(Replace(L, ",", "."))
Else
V = Val(L)) / 100
End If
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
@lermite222
bonjour,
pas de chance .....
j'ai essayé toutes combinaison possibles (tout nombres avec et sans virgules)
si je tape 10,00 j'ai comme résultat 0,10 ???
si je tape 20, j'ai comme résultat 0,20 ???
je te colle le code si dessous que j'ai fait hier avant ta réponse .....
car le fait de mettre " replace" ne change pas le résultat
Private Sub nouveauprix_AfterUpdate()
Dim V As Double
Dim L As String
L = nouveauprix
If InStr(1, L, ",") <> 0 Then
nouveauprix = L
Else
V = Val(L) / 100
nouveauprix = V
End If
End Sub
cela est peut être + clair
a+ pentium91
bonjour,
pas de chance .....
j'ai essayé toutes combinaison possibles (tout nombres avec et sans virgules)
si je tape 10,00 j'ai comme résultat 0,10 ???
si je tape 20, j'ai comme résultat 0,20 ???
je te colle le code si dessous que j'ai fait hier avant ta réponse .....
car le fait de mettre " replace" ne change pas le résultat
Private Sub nouveauprix_AfterUpdate()
Dim V As Double
Dim L As String
L = nouveauprix
If InStr(1, L, ",") <> 0 Then
nouveauprix = L
Else
V = Val(L) / 100
nouveauprix = V
End If
End Sub
cela est peut être + clair
a+ pentium91
Re, en simplifiant !!
Si une virgule... y faut rien faire
Cette fois j'ai testé, ça fonctionne
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Si une virgule... y faut rien faire
Private Sub nouveauprix_AfterUpdate()
If InStr(1, nouveauprix, ",") = 0 Then
nouveauprix = nouveauprix / 100
End If
End Sub
Cette fois j'ai testé, ça fonctionne
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
désolé ....
je pense que le problème vient d'ailleurs ....
peut être le format ?? format=Euro décimales=Auto
possible que cela soit le clavier ???
quand je tape 1 point à la place de le virgule , 1 message d'erreur apparaît :
"valeur incorrecte pour ce champ.",
vous avez peut-être entré du texte dans un champ numérique ....
peut-être aussi que je ne comprends pas la fonction "instr"
quelle différence entre :
If InStr(1, nouveauprix, ",") <> 0 Then ......
et
If InStr(1, nouveauprix, ",") = 0 Then ......
enfin bref je continu à cogiter ......
je pense que le problème vient d'ailleurs ....
peut être le format ?? format=Euro décimales=Auto
possible que cela soit le clavier ???
quand je tape 1 point à la place de le virgule , 1 message d'erreur apparaît :
"valeur incorrecte pour ce champ.",
vous avez peut-être entré du texte dans un champ numérique ....
peut-être aussi que je ne comprends pas la fonction "instr"
quelle différence entre :
If InStr(1, nouveauprix, ",") <> 0 Then ......
et
If InStr(1, nouveauprix, ",") = 0 Then ......
enfin bref je continu à cogiter ......
Faudrait que tu apprenne à t'explqué clairement et à sérialiser les problèmes.
1°) Tu tape un nombre dans un TextBox, ta demande est de diviser par 100 si pas de virgule.
Ça je suis certain que mon dernier code fonctionne correctement. (et les autre aussi d'ailleur)
2°) Les erreurs que tu signale à nouveau ne sont pas en rapport avec l'entrée dans le TextBox mais quand tu veux inséré la valeur dans ta table !! CE QUI N'A PLUS RIEN A VOIR AVEC LE 1er PROBLÈME
Dans un champs numérique tu dois entré... beh.. du numérique et pas du texte.
Hors, 10,00 c'est du texte.
Pour entrer du texte dans ton champs numérique...
Si tu veux que ça fonctionne dans tout les cas, Virgule ou point.
CDbl() : Transforme un texte avec virgule en nombre
Val() : Transforme un texte avec point en nombre
L'instruction Instr() regarde s'il y a une virgule, si oui donne sont emplacement et s'il n'y a pas de virgule renvoi zéro.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
1°) Tu tape un nombre dans un TextBox, ta demande est de diviser par 100 si pas de virgule.
Ça je suis certain que mon dernier code fonctionne correctement. (et les autre aussi d'ailleur)
2°) Les erreurs que tu signale à nouveau ne sont pas en rapport avec l'entrée dans le TextBox mais quand tu veux inséré la valeur dans ta table !! CE QUI N'A PLUS RIEN A VOIR AVEC LE 1er PROBLÈME
Dans un champs numérique tu dois entré... beh.. du numérique et pas du texte.
Hors, 10,00 c'est du texte.
Pour entrer du texte dans ton champs numérique...
LeChamps = CDbl(nouveauprix.Text)
Si tu veux que ça fonctionne dans tout les cas, Virgule ou point.
L = nouveauprix.Text
LeChamps = IIf(InStr(L, ",") <> 0, CDbl(L), Val(L))
CDbl() : Transforme un texte avec virgule en nombre
Val() : Transforme un texte avec point en nombre
L'instruction Instr() regarde s'il y a une virgule, si oui donne sont emplacement et s'il n'y a pas de virgule renvoi zéro.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.