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 :

typage de fonction + incompatibilité de type dans critère SQL


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut typage de fonction + incompatibilité de type dans critère SQL
    Bonjour,

    j'ai fait un petit tour sur tout le forum, la FAQ mais je n'ai pas trouvé de réponse satisfaisante, alors je me permets de prendre un peu de temps de lecture aux utilisateurs de ce forum..

    J'ai rédigé, dans un module créé pour l'occasion, une fonction dont voici l'en-tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Public Function Jaro(s1 As String, s2 As String) As Double
    J'exécute une requête basée elle-même sur deux requêtes où j'utilise cette fonction dans un critère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE Jaro([RQ1]![C1];[RQ2]![C1]) > 0.8
    Là, surprise :
    Type de données incompatible dans l'expression du critère. (Erreur 3464)

    J'ai essayé toutes sortes de fonctions de conversions, CDbl(), Int() ... mais toujours la même erreur. L'affichage des données ne pose pas de problème, mais le critère ne passe pas.

    Quelqu'un aurait une idée ?? A déjà rencontré le même problème ??

    Merci d'avance,

  2. #2
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    J'ai résolu le problème. Ma fonction renvoie une erreur dans le cas où un des deux arguments est Null. Or dans ma requête, certains enregistrements prennent cette valeur (ils étaient eux-mêmes tirés d'une requête avec jointure).

    A l'affichage des résultats pourtant, Access ne râle pas et affiche un message qui ressemble à #Erreur là où il n'a pas su gérer la fonction.

    A l'exécution d'un critère, par contre, il dit stop. Il ne sait donc pas calculer un booléen quand un des membre de l'expression est une #Erreur mais il sait afficher une requête dont les données en contient...

    J'ai donc utilisé la fonction Nz() pour gérer le cas où l'argument est Null.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/07/2008, 11h56
  2. Problème de typage de variable : incompatibilité de type
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2008, 19h56
  3. Incompatibilité de type dans un formulaire
    Par Kalseln dans le forum IHM
    Réponses: 7
    Dernier message: 04/09/2007, 22h02
  4. "Incompatibilité de type" dans une formule
    Par Log_polmed dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 19/06/2007, 15h03
  5. Incompatibilité de types dans un formulaire
    Par ahage4x4 dans le forum ASP
    Réponses: 3
    Dernier message: 03/05/2005, 15h39

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