Je constate plusieur annomalies dans la logique.
- Tu as declaré le recordset a l'interieur de la sub btn_ok_Click, ce qui fait que ton recordset est supprimé dés que la sub est terminée. Mais pendant sa courte période de vie, tu ne l'a pas transmise ailleurs, donc frm_stagiaire ne peut rien afficher.
- Tu demandes un recordset contenant txt_recherche.Text dans le champs rs.Fields("Nom_Stagiaire") et tu ne reclames que ce champ.
SELECT Nom_Stagiaire FROM tb_stagiaire where Nom_Stagiaire ='" & txt_recherche.Text & "'",
à ce moment, tu entres dans une boucle pour lire du premier au dernier enregistrment, ce que je comprends car il pourrait y avoir plusieurs enregistrements dans la table correspondant à la condition. Puis tu fais un test pour chaque enregistrement
If Me.txt_recherche.Text = rs.Fields("Nom_Stagiaire").Value Then
Ce qui est parfaitement inutile puisque tous les enregistrements que tu vas lire vont, par définition de ta requete, passer ce test.
Donc je propose , juste apres ta requete de tester si le recordset a au moins un enregistrement, et l'afficher le cas échéant ou dans le cas contraire, afficher le message d'erreur.
1 2 3 4 5 6 7 8
|
if rs.eof then
Msgbox "Entrée incorecte ou personne ne correspond au Nom tapé"
'Au passage, si tu veux faire un programme un tant soit peu professionnel, soigne ton orthographe au minimum dans tes messages et tes labels
else
' affichage de la feuille frm_Stagiaire
...
End if |
Quand tu demandes ton recordset, tu ne demandes que le champs Nom_Stagiaire. Je vois pas bien comment tu vas pouvoir afficher tous les champs, si tu n'en remontes qu'un. Fais plutot un Select * from ..
Enfin la routine
Private Sub LoadTextBox(frm As Form)
n'est pas au bon endroit, elle doit se trouver dans frmRecherche. Mais comme ton recordset n'est pas transmis à la sub, tu as le choix de declarer ton recordst comme variable feuille ou le transmettre en argument
Exemple:
Private Sub LoadTextBox(frm As Form,Rs as ADODB.Recordset)
Et appler la routine en faisant
LoadTextBox frm_Stagiaire,rs
Par ailleurs, je ne suis pas un fan de Ado que je n'utilise jamais, lui préférant Dao. Mais ton ouverture de recordset me parait bizare, je laisse à d'autres le soin de vérifier çà.
Une longue series d'anomalies qui j'espères te feront progresser dans la comprehension des méchanisme de la programmation sous vb.
Ps : Aucune garantie que la liste soit complete, reviens quand tu auras un code qui fonctionne un peu mieux, on tachera de t'aider encore si tu travailles bien
Partager