Bonjour,
J'ai rencontré un petit souci pour lequel j'ai trouvé la solution mais j'aimerais comprendre pourquoi cela se résoud comme ça.
Voilà. J'ai enregistré une requête dans les QueryDefs sous le nom ListeClients (visibles dans la rubrique Requête des objets de la BDD).
Pour ajouter une clause WHERE à cette requête, je récupère l'instruction SQL dans une variable de type String, et j'utilise la fonction LEFT pour enlever le point-virgule final de cette façon :
Ce que j'aimerais comprendre, c'est pourquoi il faut enlever 3 caractères au lieu d'un seul. En effet, quand je demande la longueur de la chaîne SQL, le nombre renvoyé est 126. J'ai recompté plusieurs fois et la longueur de l'instruction dans l'objet requête est en fait 124. Il y a apparemment un espace à la fin (que j'ai compté). Comment se fait-il que Len(SQL) renvoie 126 ? Cette fonction compte-t-elle des guillemets ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim SQL AS String SQL = CurrentDb.QueryDefs!listeClients.SQL SQL = Left(SQL, Len(SQL) - 3)
Merci pour vos réponses.
Partager