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

Access Discussion :

Vérification de la validité d'un N° de compte bancaire: dépassement de capacité


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Points : 45
    Points
    45
    Par défaut Vérification de la validité d'un N° de compte bancaire: dépassement de capacité
    slt,
    Vérification de la validité d'un n° de compte avant encodage :
    Isoler les 10 premiers chiffres du n° de compte soit X
    calculer result = X Mod 97
    result doit être égal aux 2 derniers chiffres sinon le n° de compte est erroné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function test()
    Dim no As String
    Dim x As Double
    Dim y, z As Byte
        no = Me.Texte0
        x = Left(no, 10)
        z = Right(no, 2)
        y = x Mod 97
    If y = z Then
        MsgBox "n° de compte correct"
    Else
        MsgBox "n° de compte erroné"
    End If
    End Function
    Avec un n° de compte tel que : 001182386853 ca marche
    Avec un n° de compte tel que : 360056054181 ca plante lors du calcul du Modulo alors que le résultat "rentre" dans un byte ?!?!?

    Pourquoi ?

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    change

    pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim y  As Byte, z As Byte
    Là tu as déclaré y comme un variant et Access fait ce qu'il veut avec les variants.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Points : 45
    Points
    45
    Par défaut
    slt,
    Exact dans ce cas Y est dimentionné comme un variant , c'était volontaire de ma part pour essayer d'éviter l'erreur (par définition un variant accepte n'importe quelle valeur même null).
    J'avais au départ dimentionné x et y séparément en byte comme tu le préconise et ça ne change rien.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Ok,

    essaye y=CByte(tonCalcul)

    A+

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Bonjour,

    bizarre car si on décompose le calcul ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Public Function test()
    Dim no As String
    Dim x As Double, w As Double
    Dim y As Byte, z As Byte
        no = Me.Texte0
        x = Left(no, 10)
        z = Right(no, 2)
        w = x / 97
        y = CByte((w - Int(w)) * 97)
    If y = z Then
        MsgBox "n° de compte correct"
    Else
        MsgBox "n° de compte erroné"
    End If
    End Function

  6. #6
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mai 2006
    Messages : 45
    Points : 45
    Points
    45
    Par défaut
    Oui comme tu dis ... bizarre !!

    Merci pour la version décomposée , je vais m'en servir en attendant de comprendre.

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

Discussions similaires

  1. vérification de la validiter d'une chaine
    Par zOoOm_10 dans le forum C
    Réponses: 2
    Dernier message: 20/03/2011, 03h45
  2. Vérification de la validité d'un SIREN et d'un SIRET
    Par Shamard dans le forum Contribuez
    Réponses: 5
    Dernier message: 02/03/2011, 09h09
  3. Vérification de la validité d'une URL
    Par cyscek dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 19/03/2010, 14h54
  4. Réponses: 5
    Dernier message: 18/04/2009, 14h18
  5. [Active Directory] Vérification de la validité d'un password
    Par cinemania dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/08/2007, 00h57

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