[ACCESS] convertir virgules en points

convertir virgules en points [ACCESS] - VB/VBA/VBS - Programmation

Marsh Posté le 23-05-2008 à 09:58:59    

Bonjour,
 
 
J'ai un form dans lequel j'ai un champ texte qui doit recevoir des chiffres avec des points (adresse IP en fait), le problème est que quand je tape sur le point décimal, il me sort une virgule :/
 
J'ai eu vent de soluce pour changer le caractère sur les evenements 'KeyDown' et 'KeyPress':
 

Code :
  1. Private Sub adresse_IP_KeyDown(KeyCode As Integer, Shift As Integer)
  2. If KeyCode = 188 Then KeyCode = 110
  3. End Sub


Code :
  1. Private Sub adresse_IP_KeyPress(KeyAscii As Integer)
  2. If KeyAscii = 44 Then KeyAscii = 46
  3. End Sub


Le problème c'est que:
 
                      1- Suivant l'évènement, il retourne des codes différents pour les touches (je pige pas pourquoi).
                      2- Bien que les codes des touches soient bon dans les deux fonctions (testées ensemble ou individuellement), il persiste à ne pas                                changer le caractère :/
 
 
Help !!

Reply

Marsh Posté le 23-05-2008 à 09:58:59   

Reply

Marsh Posté le 26-05-2008 à 09:22:52    

Personne n'a d'idée ? Je suis vraiment à la rue et ça me pose vraiment problème :/

Reply

Marsh Posté le 26-05-2008 à 10:48:20    

Si mes souvenirs sont bons, je crois qu'il n'y a pas de solution miracle à ce problème.
Peut-être qu'utiliser un masque de saisie pourrait suffir ou aider ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 26-05-2008 à 13:41:48    

Et avec une requête qui modifie la table non ? (Bon faut pas faire le con et avoi un backup bien au chaud)  :o

Reply

Marsh Posté le 26-05-2008 à 14:07:36    

Rien à voir ! Là, il s'agit de saisie. Enfin, si j'ai bien compris !
 
Sous access, quand les paramètres régionaux de l'ordi indiquent que le symbole décimal est une virgule, si tu utilises le "point" du pavé numérique, il insère une virgule plutôt qu'un point. Il met le symbole décimal quoi !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 26-05-2008 à 14:39:11    

Bonjour,
 
Essaies ça:
 
la_conversion = Replace(sa_saisie, ",", "." )
 
cdlt,
 

alkashee a écrit :

Bonjour,
 
 
J'ai un form dans lequel j'ai un champ texte qui doit recevoir des chiffres avec des points (adresse IP en fait), le problème est que quand je tape sur le point décimal, il me sort une virgule :/
 
J'ai eu vent de soluce pour changer le caractère sur les evenements 'KeyDown' et 'KeyPress':
 

Code :
  1. Private Sub adresse_IP_KeyDown(KeyCode As Integer, Shift As Integer)
  2. If KeyCode = 188 Then KeyCode = 110
  3. End Sub


Code :
  1. Private Sub adresse_IP_KeyPress(KeyAscii As Integer)
  2. If KeyAscii = 44 Then KeyAscii = 46
  3. End Sub


Le problème c'est que:
 
                      1- Suivant l'évènement, il retourne des codes différents pour les touches (je pige pas pourquoi).
                      2- Bien que les codes des touches soient bon dans les deux fonctions (testées ensemble ou individuellement), il persiste à ne pas                                changer le caractère :/
 
 
Help !!


Reply

Marsh Posté le 26-05-2008 à 16:10:07    

Trouvé sur le net via Gog : http://cjoint.com/?fAqjS51pg5
c'est du VB6 donc à priori transposable en VBA qui utilise un composant Mask Edit


Message édité par kiki29 le 26-05-2008 à 16:10:55
Reply

Marsh Posté le 27-05-2008 à 11:13:20    

Et ben que de réponse en une journée ! Merci pour tout ca, je vous tiens au courant de ce que ça donne :)

Reply

Marsh Posté le 02-06-2008 à 11:41:30    

Alors en fait, ça marche sans marcher... Je m'explique. Quand je lance le bouzin normalement, il ne veut absolument pas remplacer le caractère alors que si je le fais en pas-à-pas, il le fait -_-"
 
voila ce que ca donne:

Code :
  1. Private Sub adresse_IP_KeyPress(KeyAscii As Integer)
  2. Dim val As String
  3. Dim temp As String
  4. If KeyAscii = 46 Then
  5. val = Chr(46)
  6. temp = Replace(val, ".", "." )
  7. Adresse_IP.Value = Adresse_IP.Value & temp
  8. End If
  9. End Sub


(Je sais c'est moche mais bon à la guerre comme à la guerre)
 
 
 
Un peu bizzare cette histoire....Et quand je tape le point au dessus du point-virgule, il me le met ! Et comble de l'ironie, c'est le même code ASCII....


Message édité par alkashee le 02-06-2008 à 11:44:06
Reply

Marsh Posté le 02-06-2008 à 11:46:58    

Tu ne veux vraiment pas faire un masque de saisie ? Ce serait bien plus simple !
Ou, très simple et rapide à faire : 4 zone de texte différentes, une par composante de l'adresse IP. Et pour passer d'un champs à l'autre quand on saisie un "point", c'est bien plus simple à mettre en place que ce que tu essaie de faire.
En plus, ça te permettrait de contrôler plus efficacement chaque composante saisie, parce que là, actuellement, il se passe quoi dans ton programme si je saisie 385.-25.32.999 ?

 


Message édité par kao98 le 02-06-2008 à 11:50:05

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 02-06-2008 à 11:46:58   

Reply

Marsh Posté le 02-06-2008 à 13:15:35    

En fait c'est une deuxième mouture, la première consistait en un form avec 4 champs texte dans lesquels on saisissait les 4 octets séparément...Ayant trouvé un moyen de faire ce que je voulais sur l'adresse sans passé par 4 champs distincts, j'ai voulu faire ce form. Hélas ce foutu point me gâche la vie :/
 
Quand au contrôle il serait très simple, à la moindre erreur il renverrait sur  une msgbox disant " adresse erronée ou mauvaise saisie" :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed