bug création de requête en vba
bonjour.
j'ai le code suivant :
Code:
1 2 3 4 5 6
| Do While Not rset2.EOF
CurrentDb.CreateQueryDef "IntervApp", "SELECT * FROM InterventionsFiltrées WHERE Marquage=" & CStr(rset2!Marquage) & " ORDER BY DateIntervention;"
' ... nombreuses opérations sans rapport avec le problème ...
DoCmd.DeleteObject acQuery, "IntervApp"
rset2.MoveNext
Loop |
où rset2 parcours une table contenant bien le champ "Marquage"
de plus, je suis absolument certain que tous les "Marquage" apparaissant dans rset2 existent dans "InterventionsFiltrées"
Cependant je me suis retrouver une fois avec une requête IntervApp vide !
En étudint le problème, voilà ce que j'ai remarqué:
- au moment du bug rset2!Marquage a pour valeur "25-02-2259"
- CStr(rset2!Marquage) vaut également "25-02-2259"
- quand je vais voir la requête créée, voilà le SQL:
Code:
1 2 3 4
| SELECT *
FROM InterventionsFiltrées
WHERE (((InterventionsFiltrées.Marquage)="25-2-2259"))
ORDER BY InterventionsFiltrées.DateIntervention; |
Il semble donc que malgré le fait que VBA exporte une chaîne de caractère, elle soit considérée autrement (comme une date ?) dans la requête, qui du coup est modifiée et fausse, ce qui a pour résultat qu'elle est vide.
Je me suis dit que cela venait peut-être du fait que quand je crée la requêt cela donne le code suivant:
Code:
1 2 3 4
| SELECT *
FROM InterventionsFiltrées
WHERE Marquage=25-02-2259
ORDER BY DateIntervention; |
sans les guillemets ! mais je ne sais pas mettre des guillemets dans une chaine de caractère...