Bonjour,
Petit tuyau :
Lorsque tu crées une requête en VBA la première chose à faire est tester son résultat dans un objet requête. Il y a un tuto sur le débogage de ce type de montage.
Concernant ton code :
1 2 3 4
|
"SELECT * FROM film " _
& "WHERE film_nom Like ""*" & Replace(TexteRecherche.Text, """", """""") & "*"";" _
& "ORDER BY [film_nom], [film_format_video], [film_taille], [film_emplacement]" |
On aperçoit à la fin de la ligne 2 :
Tu indiques explicitement, par ce caractère " ; " que c'est la fin de l'instruction SQL, si tu places le contenu de la string QRY, après son évaluation, dans un objet requête et que affiche son résultat tu obtiendras un message d'erreur du type "caractères trouvé après la fin de l'instruction" ou un message s'en approchant.
Concernant la deuxième instruction :
Me.[recherche_film_sous-formulaire].Form.RecordSource = QRY ORDER BY [film_nom], [film_format_video], [film_taille], [film_emplacement]
ça ne veut strictement rien dire :
1) recordsource attent une string : ici ce n'est pas une string valide VBA (absence de délimiteur " ")
2) Cette string doit contenir une source valide. Donc soit le nom d'une requête ou d'une table, soit une instruction SQL valide (SELECT ... FROM...), soit encore une variable String contenant elle-même l'un des 2 contenus précédemment cité.
Eventuellement tu aurais pu faire ceci :
Me.[recherche_film_sous-formulaire].Form.RecordSource = QRY & " ORDER BY [film_nom], [film_format_video], [film_taille], [film_emplacement]"
Mais là encore la ";" contenu à la fin de QRY t'en empêche.
Consulte le tuto sur le débogage de requête en VBA. Il te permettra d'obtenir plus d'autonomie sur ce type de problème.
Cordialement,
[EDIT] Tu peux supprimer simplement ce caractère.
Partager