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 :

Expressions régulières qui ne fonctionnent pas comme je veux! [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut Expressions régulières qui ne fonctionnent pas comme je veux!
    Bonjour à toutes et à tous,

    Voici mon problème du jour: j'ai codé une fonction pour vérifier qu'une donnée, fournie par le biais d'une "InputBox", corresponde bien à la forme XXXXXXXXXX.XXXX où X est un nombre de 0 à 9.
    Les contraintes:
    - La donnée à la gauche du point peut comprendre de 1 à 10 chiffres max
    - La donnée à la droite du point comprend obligatoirement 4 chiffres max de 0 à 9

    Voici le code de ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Function controlPoint(ByVal strMail As String) As Boolean
     
    Dim reg As New VBScript_RegExp_55.RegExp
     
    reg.Pattern = "^(\d{1,10})[.](\d{1,4})$"
    controlPoint = reg.Test(strMail)
     
    Set reg = Nothing
     
    End Function
    J'utilise cette fonction avec une boucle Do while & Loop, pour que tant que la donnée ne correspond pas au modèle, elle ne soit pas enregistrée. Le problème est que quand je rentre une donnée dite "bonne", la boucle continue (donc je suppose que ma fonction ne répond pas bien).

    Est-ce que quelqu'un pourrait m'aider à solutionner ce petit soucis?

    Merci,

    Titom

  2. #2
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Titom1978,

    Si le nombre de chiffres doit obligatoirement être de 4 il faut transformer ton expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function controlPoint(ByVal strMail As String) As Boolean
     
    Dim reg As New VBScript_RegExp_55.RegExp
     
    reg.Pattern = "^(\d{1,10})[.](\d{4,4})$"
    controlPoint = reg.Test(strMail)
     
    Set reg = Nothing
     
    End Function
    Cette fonction renvoie True (Vrai) si la normalisation de ta châine correspond aux contraintes de ton expression, ainsi via ton éditeur (ctrl+G) et la fenêtre d’exécution tu peux valider tes choix :

    Nom : Capture.JPG
Affichages : 195
Taille : 44,8 Ko

    Si ta boucle continue de s’exécuter je te conseille de mettre un point d'arrêt sur celle-ci et suivre le déroulement en mode pas à pas afin de vérifier son comportement.

    Deux tutoriels qui devraient t'intéresser :

    Les expressions régulières : http://cafeine.developpez.com/access...gexp/#LIII-A-1

    Les techniques de debug : http://cafeine.developpez.com/access...el/debugprint/

    Cordialement

    Jimbolion

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Merci beaucoup pour ton retour,

    Je vais tester la fonction et je vais aller faire un tour sur les liens que tu m'as communiqué.

    Je reviendrai mettre en [Résolu] si tout est ok!

    Merci.

    Titom

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Ca marche!

    Merci beaucoup pour les conseils!

    A bientôt sur le forum!

    Titom

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

Discussions similaires

  1. [Bonne pratique] merge qui ne fonctionne pas comme prévu
    Par forex dans le forum Subversion
    Réponses: 1
    Dernier message: 19/05/2008, 04h28
  2. [RegEx] Expression régulière qui ne fonctionne pas ?
    Par MaTHieU_ dans le forum Langage
    Réponses: 5
    Dernier message: 23/07/2007, 14h43
  3. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  4. requete qui ne fonctionne pas comme je shouterais
    Par domino_dj dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/04/2007, 12h27
  5. un if qui ne fonctionne pas comme je veux
    Par Kelly182 dans le forum Access
    Réponses: 4
    Dernier message: 27/07/2006, 15h12

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