NHenry
Messages postés15116Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 9 mai 2024
-
23 août 2010 à 11:35
NHenry
Messages postés15116Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 9 mai 2024
-
23 août 2010 à 14:21
Bonjour,
Lors du codage d'une requête SQL pour récupérer un utilisateur par un identifiant pouvant contenir des 0 non significatifs, j'ai codé une requête SQL, dont voici un exemple (généré par le code) :
SELECT * FROM TUsers WHERE UserIdExt='01234' OR Replace(LTrim(Replace(UserIdExt,"0"," "))," ","0")='1234'
Le problème est que si je fais cette requête par l'assistant MSAccess, ça passe sans souci et la réponse est bonne, mais par le code (VB6/DAO), ça me retourne l'erreur :
Erreur 3085 : "Fonction 'replace' non définie dans l'expression."
Je ne comprend pas pourquoi
En désespoir de cause, je me tourne vers une recherche LIKE, mais si quelqu'un peut expliquer ce mystère, je suis preneur.
NHenry
Messages postés15116Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 9 mai 2024159 23 août 2010 à 14:19
Bonjour,
J'ai testé la version :
SELECT * FROM TUsers WHERE UserIdExt='01234' OR Replace(LTrim(Replace(UserIdExt,'0',' ')),' ','0')='1234'
Mais ça ne fonctionne pas, même erreur.
La version
"SELECT * FROM TUsers WHERE UserIdExt='01234' OR " & Replace(LTrim(Replace(UserIdExt.....
Que tu propose ne me convient pas, car les retrait des 0 non significatifs est à faire sur le champ de la BDD pour comparaison, il faut donc que ça fasse parti de la requête SQL.
Par ailleurs, j'ai testé avec Int (pour convertir en nombre), mais quelques null semblent me bloquer (erreur : conversion incorrecte).
Merci pour la piste quand même.
Le problème est toujours présent.