Salut à tous !
Il y avait longtemps que je ne vous avais pas fait part d'un problème.
Alors voila, je suis entrain de bosser sur une recherche multicritère.
Dans mon code VBA, je construis ma requête au fur et a mesure.
Je ne vais pas vous mettre toute la construction de la requete, mais en gros, j'ai des variables de type String : strSelection, strFrom, strCondition que je remplis en fonction de ce que contienne les champs de mon formulaire.
Je concatène le tout au final, dans une variable strReq, pour obtenir ma requete finale.
Bref, j'ai affiché cette requete dans un Debug.Print, et je l'ai testé sous Access, elle fonctionne nickel.
Quand je l'exécute en VBA, ça marche aussi. Sauf que si je n'ai aucun résultat a la recherche, les champs de mon formulaire ne s'affichent plus (normal puisque je passe par le RecordSource du formulaire).
Mon problème est le suivant : j'ai ajouté un test pour vérifier justement que ma requete avait bien au moins un résultat, histoire de mettre un message d'avertissement pour l'utilisateur, et de ne pas modifier le RecordSource du formulaire si il ne faut pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 strReq = strSelection & strFrom & strCondition & " ORDER BY TITRE_VIDEO;" 'il faut vérifier si la requête à au moins un résultat 'sinon le formulaire ne s'affichera pas lors de la modification de sa source rs.Open strReq, connec, adOpenDynamic, adLockOptimistic Debug.Print strReq If rs.EOF Then 's'il n'y a aucun résultat Call messageInformation("Aucune vidéo ne correspond à vos critères de recherche", "Aucune vidéo") DoCmd.GoToRecord , , acFirst Exit Sub End If Me.RecordSource = strReq
Comme vous le voyez, je passe par rs.EOF pour savoir si j'ai un résultat ou pas. J'ai toujours fait comme ça, et ça marchait très bien a chaque fois.
Sauf que la, il passe tout le temps dans mon test, et donc m'affiche tout le temps mon message d'erreur...
J'ai bien essayé d'utiliser RecordCount, mais la bête me retourne -1 a chaque fois.
Concrètement, je vois pas pourquoi mon test ne fonctionne pas...
Si quelqu'un peut m'éclairer, ou me conseiller une autre solution pour tester si ma requête a un résultat, ça me dépannerait bien.
D'avance merci
Partager