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 :

Fonction Ascw() retourne un nombre négatif


Sujet :

VBA Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut Fonction Ascw() retourne un nombre négatif
    Hello tout le monde,

    Dans une procédure en VBA, je traite une chaîne de caractère, caractère par caractère et j'utilise la fonction AscW(). Dans cette chaîne de caractère, j'ai des caractère spéciaux qui ont un code unicode entre 50'000 et 65'000. Selon la documentation de Microsoft:
    la fonction AscW() devrait retourner un Integer entre 0 et 65'535. Mais en réalité le fonction me retourne un nombre négatif comme -5052.Or la fonction Ascw() retourne une donnée de Integer qui devrait accepté ce genre de chiffre selon la documentation.
    Est-ce une erreur de la document Microsoft ou s'agit-il d'autre chose?

    Par avance, merci pour votre aide.

    Cédric

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Comment procèdes-tu pour ta lecture caractère par caractère ?

    Je soupçonne que c'est parce que les unicodes sont codés sur 2 octets et que tu ne récupères qu'un seul octet lors de ta lecture.

    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 averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Bonjour Marot_r,

    Je procède la manière suivante pour récupérer ma valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim car As String
    Dom numasc As Integer
    numasc = AscW(Car)
    Par avance, pour ton aide

    Cédric

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Points : 346
    Points
    346
    Par défaut
    Bonjour tout le monde,

    en lisant dans la documentation de Microsoft:
    https://support.microsoft.com/fr-fr/kb/145745
    et en regardant les types de données
    https://support.microsoft.com/fr-fr/kb/189323

    et si je veux récupérer le vrai code unicode du nombre négatif, il faudrait faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim resascw As Long
    resascw = AscW(res) + 65536
    Est-ce que ceci est la seule solution?

    Avoir davantage d'info sur la différence entre valeur signée et non signée?

    Par avance, merci pour ces aide

    Cédric

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/05/2012, 14h30
  2. [RegEx] fonction checkdate et nombre négatifs ?
    Par laloune dans le forum Langage
    Réponses: 2
    Dernier message: 01/12/2011, 14h14
  3. Réponses: 3
    Dernier message: 18/08/2011, 22h12
  4. [PHP 5.2] Fonction qui retourne le nombre de jours compris entre deux dates
    Par zemzoum89 dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2010, 20h27
  5. Ma fonction me retourne des nombres complexes!
    Par FouadSami dans le forum MATLAB
    Réponses: 1
    Dernier message: 09/04/2009, 18h47

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