Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/01/2012, 11h37   #1
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 40
Points : 27
Points : 27
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 :
 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 :
 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,
rstck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 12h37   #2
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 40
Points : 27
Points : 27
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.
rstck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h26.


 
 
 
 
Partenaires

Hébergement Web