IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Souci point pavé numérique [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut Souci point pavé numérique
    Bonjour,

    voici mon souci du jour...

    Je cherche dans un form, quand l'utilisateur saisisse un point sur le clavier décimal du clavier que celui-ci soit un point et non pas une virgule...

    Le souci, est que je ne souhaite pas modifier les paramètres internationaux des postes.

    J'ai testé pour voir le code ascii retourné, mais c'est le même (46) alors que la zone de texte reçoit une virgule si j'appuie sur le point du clavier décimal ! D'où je pense la difficulté !

    Le tout, c'est pour éviter des "," dans la zone de texte, qui est un mail. Donc un masque email conviendrait également.

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    il faut intercepter la touche et non le caractère.

    Je pense que c'est l'événement "Sur Touche appuyé" qui permet cela.
    Tu devrais récupérer le numéro de la touche et gérer en conséquence.
    Si tu ne veux pas le faire champ par champ il faut mettre la propriété du formulaire "Aperçu des touches" à Oui.
    Les touches seront "vues" au niveau du formulaire avant d'être envoyées au champ de saisie.
    Tu peux faire la substitution là.
    Et tu peux peut-être écrire une procédure ou une fonction qui prend un formulaire en paramètre ce qui permet de réutiliser le même code pour tout tes formulaires.

    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call MonCode(me) 'Appelle MonCode en passant le formulaire courant en paramètre.
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Bonjour et merci,

    j'ai mis la propriété aperçu des touches à oui, rien ne se passe...

    Sinon, comment récupérer la touche et non le caractère sur l'événement "keypress" ?

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_KeyPress(KeyAscii As Integer)
        MsgBox KeyAscii
    End Sub
    KeyAscii te donne le bon carcatère.
    Sur mon clavier le point du pavé numérique est 46 et le point du clavier texte est ausssi 46. Lt la virgule du clavier "texte" est 44.
    Hélas, désolé, même si il reçoit bien 46 quand on tape avec le pavé numérique, il met quand même une virgule dans le texte :-(.
    Donc ça ne marche pas.

    Ici avec KeyDown ça marche, les codes correspondent à mon clavier il est possible qu'ils soient différents chez toi. Tu peux utiliser le MsgBox pour les valider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
        'MsgBox "KeyDown : " & KeyCode & "," & Shift
     
        If KeyCode = 110 Then
            KeyCode = 190 'Touche "." du clavier texte.
        End If
     
    End Sub
    Ça c'est le code pour le form si tu veux traiter tous les champs.
    Si tu n'as besoin que pour un seul, il est plus prudent de mettre le code pour ce champ.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Merci,

    j'avais testé avec les msgbox et j'avais vu que le code retourné était le même

    Avec le keydown, les codes ne sont effectivement pas les mêmes, mais un souci persiste :

    Si je suis en majuscules, le code 190 me retourne un ";" et bien en "." si je suis en minuscules

    J'ai regardé un peu partout, mais je ne trouve pas de touche "." qui ne soit pas affectée également au ";".

    Une idée ?

    Merci

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Il faut tester la valeur du 2ième paramètre Shift (majuscule).

    Je crois que c'est 1 si il est enfoncé et 0 si non donc probablement le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If KeyCode = 110 and shift =0 Then
            KeyCode = 190 'Touche "." du clavier texte.
    End If
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Merci, mais le paramètre Shift ne prend pas en compte la touche CAPS LOCK vérouillée ou pas, il me retourne 0...

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Désolé je pensais que le shift marcherai :-(.

    Ici du code pour tester le caps lock (entre autre)

    Caps Lock Num Lock Scroll lock status
    https://bytes.com/topic/access/answe...ll-lock-status

    Je pense que le mieux est de mettre ce code dans son module à part du reste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Pas de quoi être désolé

    mais cela me donne l'état de la touche, pas le moyen de remplacer. Ou alors je n'ai pas tout compris.

    Je crois que je vais regarder du côté des parametres internationaux du coup. Je pensais qu'un replace ("," , ".") aurait été possible, sans sortir l'artillerie lourde !

    Merci en tous cas !!

    A+

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    Il faut combiner le KeyDown et le test d'état des touches.

    Grosso modo

    Est-ce que la touche correspond au point du clavier texte ?
    Est-ce que CAPS Lock ou Shift est appuyé ?

    Si non substituer la touche
    Si oui, ne rien faire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Membre émérite Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Par défaut
    Salut et merci.

    Je mets résolu !

    Merci à tous.

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] utilisation point pavé numérique dans datagridview
    Par doudou47 dans le forum VB.NET
    Réponses: 17
    Dernier message: 28/03/2012, 00h11
  2. [OpenOffice][Texte] writer point pavé numérique
    Par andeve dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 26/11/2008, 11h32
  3. Transformer le point du pavé numérique en virgule
    Par SurfingJeff dans le forum Langage
    Réponses: 4
    Dernier message: 04/11/2008, 10h58
  4. [OpenOffice] le point du pavé numérique ne s'affiche pas
    Par sidahmed dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 27/08/2007, 16h45
  5. [d7]pavé numérique point et virgule
    Par dleu dans le forum Langage
    Réponses: 8
    Dernier message: 28/04/2006, 03h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo