Entrer des données sans virgule dans formulaire Access
Fermé
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
-
7 oct. 2012 à 10:07
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 oct. 2012 à 11:19
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 21 oct. 2012 à 11:19
A voir également:
- Entrer des données sans virgule dans formulaire Access
- Rechercher ou entrer l'adresse - Guide
- Entrer les informations d'identification reseau - Guide
- Adresse IP locale : comment la trouver facilement - Guide
- Reinstaller windows sans perte de données - Guide
- Entrer des coordonnées gps - Guide
10 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 oct. 2012 à 11:32
7 oct. 2012 à 11:32
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+
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
1
13 oct. 2012 à 12:48
13 oct. 2012 à 12:48
@lermite222 : merci pour la réponse ...; génial
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
1
Modifié par pentium91 le 15/10/2012 à 19:55
Modifié par pentium91 le 15/10/2012 à 19:55
@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+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 15/10/2012 à 21:37
Modifié par lermite222 le 15/10/2012 à 21:37
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
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
1
Modifié par pentium91 le 16/10/2012 à 19:49
Modifié par pentium91 le 16/10/2012 à 19:49
@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
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
17 oct. 2012 à 10:01
17 oct. 2012 à 10:01
quand tu tape le montant c'est une virgule ou un point qui est écrit ?
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
1
20 oct. 2012 à 11:31
20 oct. 2012 à 11:31
bonjour,
quand je tape ..... c'est une virgule (pavé numérique sur clavier)
a+ pentium91
quand je tape ..... c'est une virgule (pavé numérique sur clavier)
a+ pentium91
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 20/10/2012 à 14:10
Modifié par lermite222 le 20/10/2012 à 14:10
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.
pentium91
Messages postés
22
Date d'inscription
mardi 17 juillet 2007
Statut
Membre
Dernière intervention
3 janvier 2021
1
20 oct. 2012 à 19:27
20 oct. 2012 à 19:27
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 ......
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 21/10/2012 à 12:05
Modifié par lermite222 le 21/10/2012 à 12:05
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.