bonjour.
j'ai le code suivant :
où rset2 parcours une table contenant bien le champ "Marquage"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
sans les guillemets ! mais je ne sais pas mettre des guillemets dans une chaine de caractère...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM InterventionsFiltrées WHERE Marquage=25-02-2259 ORDER BY DateIntervention;
Partager