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

VB 6 et antérieur Discussion :

error execution ; depassement de capacité


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut error execution ; depassement de capacité
    je suis un debutant en vb;
    voici un echantillon du code pour lequel j'ai de serieux ennui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim SeDebut As Long
    Dim SeFin As Long
     
    SerialDebut = Trim(SerialDebut) 'SerialDebut et serialfin st des valeur saisies ds un text box que je recupère...
    SerialFin = Trim(SerialFin)
    SeFin = CLng(SerialFin)
    SeDebut = CLng(SerialDebut)
    If (SeFin - SeDebut) > 0 Then
        NbreSup = NbreSup + 1
    mon problème c'est que je n'arrive pas a traiter les nombre entier de plus de 10 chiffres tel que 99999999999 (10chiffres) ERREUR:depassement de capacité ;alors que je veux pouvoir traiter des nombre S/N: 9999999999999999 (16 chiffres); le type long n'est til pas approprié? ou y a til une erreur dans mes declarations?? Aider moi SVP

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14
    Par défaut
    Bonjour,

    Cela ne fonctionnerait t'il pas en laissant "SerialDebut" et "SerialFin", c'est a dire des types string ???

    VB devrait normalement comparer les deux chaines de caractères ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim SerialDebut As String
    Dim SerialFin As String
     
    SerialDebut = Trim(SerialDebut) 
    SerialFin = Trim(SerialFin)
     
    If (SerialFin > SerialFin ) Then
        NbreSup = NbreSup + 1
    End If
    Après si tu veut, vérifie que tes informations saisies soit bien numériques ...

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Merci LePoulot
    j'y ai pensé mais le problème qui se pose c'est le suivant: j'utilise le resulta de la difference entre "serialFin et serialdebut" dans une boucle For; cmt pallier a cela? merci d'avance

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Le type de données Decimal utilise 12 octets pour stocker une valeur. Cela sera-t-il suffisant ?

    Edit : je tenais l'info sur le type Decimal d'un bouquin. Mais ce format n'étant pas supporté directement dans VB, mais pour certaines bases de données, soupir!, je propose donc le type variant qui occupe 16 octets. Je fais des tests mais je doute le pire puisqu'il est indiqué (dans le même bouquin) que variant peut contenir 'toute valeur aussi grande qu'une Double' qui occupe seulement 8 octets...

    Edit (bis) : Comme je le redoutais, ça ne marche pas. Il reste la référence donnée par LePoulot.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    bonjour à tous,

    Avec un 'variant' cela a l'air de fonctionner ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
          Dim a
          a = 999999999999999# + 1
          MsgBox a
     
    End Sub
    La réponse correspond.
    A+

    [edit] le signe '#' a été ajouté tout seul par VB
    [edit2] affiché en exposant, pour une comparaison ça devrait convenir.

Discussions similaires

  1. ERREUR D'EXECUTION 6 : DEPASSEMENT DE CAPACITE
    Par saninx dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/04/2015, 10h22
  2. [AC-2003] erreur d'execution 6 depassement de capacite
    Par Cuoreconleali dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/12/2009, 17h45
  3. probleme de depassement de capacités
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 07/04/2006, 10h02
  4. [VB6] Hex(Double) - depassement de capacite
    Par SErhio dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 18/05/2005, 17h09
  5. depassement de capacité
    Par jpg dans le forum ASP
    Réponses: 2
    Dernier message: 19/08/2004, 18h26

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